美文网首页iOS面试题将来跳槽用iOS收藏
【潮汐】iOS面试题-ZHQBT(2019年6月)(1)

【潮汐】iOS面试题-ZHQBT(2019年6月)(1)

作者: 爱恨的潮汐 | 来源:发表于2019-05-31 21:04 被阅读0次
1、用dispatch_once_t onceToken实现Foo类的一个单例
static Foo * foo;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    foo = [[Foo alloc]init];
});
2、请使用一行代码移除contentView的所有subViews。

方法一(不符合题目要求):
iOS的 View 提供了一个 removeFromSuperview 的方法可以将 View 从父View上移除,如何删除 View 的所有子View,就可以通过 view.subviews 取到所有子View的数组,然后通过循环 removeFromSuperview 删除。

方法二(完美):
用数组的makeObjectsPerformSelector:SEL方法来减少自己写循环代码,让数组中的每个元素 都调用 removeFromSuperview方法。

//要删除当前contentView的所有子View下面一行代码即可搞定
[self. contentView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];  
3、请用一行代码判断一个类是否存在(如Foo类),并输出提示。

我们在开发的过程中难免会用到低版本中没有的类,如果我们想让我们的应用尽可能的兼容多个版本,我们需要考虑如果我们使用的类在低版本中没有怎么办呢。

 Class pkClass = NSClassFromString(@"PKAddPassesViewController");
    if (pkClass) {
        NSLog(@"存在");
        //如果可以使用,我们可以使用passkit的一些功能
    }else{
        NSLog(@"不存在");
        //如果不可以,我们就要提示用户,或者进行一些其他的处理
    }
4、SDWeblmage怎么处理图片的名称?

答案:对URL进行MD5加密

5、简述OC消息发送路径,如何避免出现unrecognized selector

消息发送的机制我们都明白,通过superclass指针逐级向上查找该消息所对应的方法实现。如果直到根类都没有找到这个方法的实现,运行时会通过补救机制,继续尝试查找方法的实现。那么我们能不能通过重写其中的某个方法,来达到不崩溃的目的?

思路:
创建一个接收未知消息的类,暂且称之为 Protector
创建一个 NSObject 的分类
在分类中重写** forwardingTargetForSelector: **,在这个方法中截获未实现的方法,转发给 Protector。并为 Protector 动态的添加未实现的方法,最后返回 Protector 的实例对象。
在分类中新增一个安全的方法实现,来作为 Protector 接收到的未知消息的实现。
点我查看详细参考

6、简述一下事件响应链的过程,并描述事件传递过程。

答案见参考文章

7、runtime是什么?例举下runtime在OC中的用途,不少于5种。

运行时(runtime)是指在程序运行时才确定数据的类型,调用指定的方法。将数据类型的确定由编译时推迟到了程序运行时。

runtime发送消息
交换方法
动态添加方法
给分类添加属性
字典转模型
获取属性列表
拦截调用

相关文章

  • 【潮汐】iOS面试题-ZHQBT(2019年6月)(1)

    1、用dispatch_once_t onceToken实现Foo类的一个单例 2、请使用一行代码移除conten...

  • iOS 面试题及答案

    面试题集锦 iOS面试题及答案1iOS面试题及答案2iOS进阶面试题及答案3 一. CoreAnimation 相...

  • IOS面试(2018)

    经典面试题 非技术面试题 C面试题1 C面试题2 C面试题3 iOS笔试题01 iOS笔试题02 iOS笔试题03...

  • ios-面试题链接(四)

    经典面试题 非技术面试题 C面试题1 C面试题2 C面试题3 iOS笔试题01 iOS笔试题02 iOS笔试题03...

  • 2018 iOS面试题系列

    经典面试题 非技术面试题 C面试题1 C面试题2 C面试题3 iOS笔试题01 iOS笔试题02 iOS笔试题03...

  • 2020年,精选大厂的iOS面试题总结(一)

    iOS面试题目录(一) 精选大厂的iOS面试题总结(一)精选大厂的iOS面试题总结(二) 1. iOS内存管理机制...

  • 面试题汇总

    ? 1. 基础 细说@property iOS基础面试题1(5.16) iOS基础面试题2 (5.24) 标哥(黄...

  • iOS最新面试题汇总(四)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(三)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(一)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

网友评论

    本文标题:【潮汐】iOS面试题-ZHQBT(2019年6月)(1)

    本文链接:https://www.haomeiwen.com/subject/quxytctx.html