RICK技术博客

HOMEARCHIVETAGSINFORSS

Rick

iOS修炼中 | 性别男爱好女 | 努力挣钱中

  • 招聘一个靠谱的iOS<答案2>

    Nov 3, 2015

    原文

    原文地址

    《招聘一个靠谱的 iOS》—参考答案(下)

    说明:面试题来源是微博@我就叫Sunny怎么了的这篇博文:《招聘一个靠谱的 iOS》,其中共55题,除第一题为纠错题外,其他54道均为简答题。

    出题者简介: 孙源(sunnyxx),目前就职于百度,负责百度知道 iOS 客户端的开发工作,对技术喜欢刨根问底和总结最佳实践,热爱分享和开源,维护一个叫 forkingdog 的开源小组。

    答案为微博@iOS程序犭袁整理,未经出题者校对,如有纰漏,请向微博@iOS程序犭袁指正。


    索引

    1. 25. _objc_msgForward 函数是做什么的,直接调用它将会发生什么?
    2. 26. runtime如何实现weak变量的自动置nil?
    3. 27. 能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
    4. 28. runloop和线程有什么关系?
    5. 29. runloop的mode作用是什么?
    6. 30. 以+ scheduledTimerWithTimeInterval…的方式触发的timer,在滑动页面上的列表时,timer会暂定回调,为什么?如何解决?
    7. 31. 猜想runloop内部是如何实现的?
    8. 32. objc使用什么机制管理对象内存?
    9. 33. ARC通过什么方式帮助开发者管理内存?
    10. 34. 不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建)
    11. 35. BAD_ACCESS在什么情况下出现?
    12. 36. 苹果是如何实现autoreleasepool的?
    13. 37. 使用block时什么情况会发生引用循环,如何解决?
    14. 38. 在block内如何修改block外部变量?
    15. 39. 使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?
    16. 40. GCD的队列(dispatch_queue_t)分哪两种类型?
    17. 41. 如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)
    18. 42. dispatch_barrier_async的作用是什么?
    19. 43. 苹果为什么要废弃dispatch_get_current_queue?
    20. 44. 以下代码运行结果如何?

      1
      - (void)viewDidLoad
      {
          [super viewDidLoad];
          NSLog(@"1");
          dispatch_sync(dispatch_get_main_queue(), ^{
              NSLog(@"2");
          });
          NSLog(@"3");
      }
    21. 45. addObserver:forKeyPath:options:context:各个参数的作用分别是什么,observer中需要实现哪个方法才能获得KVO回调?

    22. 46. 如何手动触发一个value的KVO
    23. 47. 若一个类有实例变量 NSString *_foo ,调用setValue:forKey:时,可以以foo还是 _foo 作为key?
    24. 48. KVC的keyPath中的集合运算符如何使用?
    25. 49. KVC和KVO的keyPath一定是属性么?
    26. 50. 如何关闭默认的KVO的默认实现,并进入自定义的KVO实现?
    27. 51. apple用什么方式实现对一个对象的KVO?
    28. 52. IBOutlet连出来的视图属性为什么可以被设置成weak?
    29. 53. IB中User Defined Runtime Attributes如何使用?
    30. 54. 如何调试BAD_ACCESS错误
    31. 55. lldb(gdb)常用的调试命令?
    面试
    更多   
  • 招聘一个靠谱的iOS<答案>

    Nov 3, 2015

    原文

    原文地址

    《招聘一个靠谱的 iOS》—参考答案(上)

    说明:面试题来源是微博@我就叫Sunny怎么了的这篇博文:《招聘一个靠谱的 iOS》,其中共55题,除第一题为纠错题外,其他54道均为简答题。

    出题者简介: 孙源(sunnyxx),目前就职于百度,负责百度知道 iOS 客户端的开发工作,对技术喜欢刨根问底和总结最佳实践,热爱分享和开源,维护一个叫 forkingdog 的开源小组。

    答案为微博@iOS程序犭袁整理,未经出题者校对,如有纰漏,请向微博@iOS程序犭袁指正。


    #索引

    1. 风格纠错题

      1. 优化部分
      2. 硬伤部分
    2. 什么情况使用 weak 关键字,相比 assign 有什么不同?
    3. 怎么用 copy 关键字?
    4. 这个写法会出什么问题: @property (copy) NSMutableArray *array;
    5. 如何让自己的类用 copy 修饰符?如何重写带 copy 关键字的 setter?
    6. @property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的
    7. @protocol 和 category 中如何使用 @property
    8. runtime 如何实现 weak 属性
    9. @property中有哪些属性关键字?/ @property 后面可以有哪些修饰符?
    10. weak属性需要在dealloc中置nil么?
    11. @synthesize和@dynamic分别有什么作用?
    12. ARC下,不显式指定任何属性关键字时,默认的关键字都有哪些?
    13. 用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
      1. 对非集合类对象的copy操作
      2. 集合类对象的copy与mutableCopy
    14. @synthesize合成实例变量的规则是什么?假如property名为foo,存在一个名为_foo的实例变量,那么还会自动合成新变量么?
    15. 在有了自动合成属性实例变量之后,@synthesize还有哪些使用场景?
    16. objc中向一个nil对象发送消息将会发生什么?
    17. objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?
    18. 什么时候会报unrecognized selector的异常?
    19. 一个objc对象如何进行内存布局?(考虑有父类的情况)
    20. 一个objc对象的isa的指针指向什么?有什么作用?
    21. 下面的代码输出什么?
    1
    @implementation Son : Father
    - (id)init
    {
        self = [super init];
        if (self) {
            NSLog(@"%@", NSStringFromClass([self class]));
            NSLog(@"%@", NSStringFromClass([super class]));
        }
        return self;
    }
    @end
    1. 22–55题,请看下篇。
    面试
    更多   
  • __weak如何实现对象值自动设置为nil的

    Nov 3, 2015

    原文:

    http://blog.csdn.net/hherima/article/details/38661803?utm_source=tuicool&utm_medium=referral

    在开始讲解__weak机制之前,先来一些铺垫

    ARC 的实现

    苹果的官方说明中称,ARC是“由编译器进行内存管理”的,但实际上只有编译器是无法完全胜任的,ARC还依赖OC运行时库,也就是说ARC是通过以下工具、库来实现的:

    • clang (LLVM 编译器)3.0以上

    • objc4 OC运行时库 493.9以上

    如果按照苹果的说明,仅仅是编译器管理内存的,那么weak修饰符也可以在iOS 4中使用

    ARC
    更多   
  • (转)iOS JSON 模型转换库评测

    Nov 3, 2015

    原文出自

    http://blog.ibireme.com/2015/10/23/ios_model_framework_benchmark/

    iOS 开发中总会用到各种 JSON 模型转换库,这篇文章将会对常见的几个开源库进行一下评测。评测的内容主要集中在性能、功能、容错性这几个方面。

    评测的对象:

    Manually

    手动进行 JSON/Model 转换,不用任何开源库,可以进行高效、自由的转换,但手写代码非常繁琐,而且容易出错。

    YYModel

    我造的一个新轮子,比较轻量(算上 .h 只有 5 个文件),支持自动的 JSON/Model 转换,支持定义映射过程。API 简洁,功能也比较简单。

    FastEasyMapping

    Yalantis 开发的一个 JSON 模型转换库,可以自定义详细的 Model 映射过程,支持 CoreData。使用者较少。

    JSONModel

    一个 JSON 模型转换库,有着比较简洁的接口。Model 需要继承自 JSONModel。

    Mantle

    Github 官方团队开发的 JSON 模型转换库,Model 需要继承自 MTLModel。功能丰富,文档完善,使用广泛。

    MJExtension

    国内开发者”小码哥”开发的 JSON 模型库,号称性能超过 JSONModel 和 Mantle,使用简单无侵入。国内有大量使用者。

    json
    更多   
  • BEMCheckBox

    Nov 3, 2015
    checkBox
    更多   
  • CoolNavi

    Nov 2, 2015
    navigationtableView
    更多   
  • JZNavigationExtension

    Nov 2, 2015
    navigation
    更多   
  • 第一篇文章

    Nov 2, 2015
    测试
    更多   

© 2016 - 2017 Rick, powered by Hexo and theme by casual

粤ICP备16105611号-1