iOS面试题-OC基础语法

语言: CN / TW / HK

1 class和struct的区别

iOS OC 中 load & initialize 调用时机与规则

instancetype 和 id 的区别

静态库和动态库

KVC和KVO区别

KVO原理

在Foundation/NSKeyValueObserving.h可以找到下面的方法,

- (void)willChangeValueForKey:(NSString *)key;
- (void)didChangeValueForKey:(NSString *)key;
+ (BOOL)automaticallyNotifiesObserversForKey:(NSString *)key;

+(BOOL)automaticallyNotifiesObserversForKey:(NSString *)key控制是否自动发送通知

如果set方法是自己实现的,那KVO是无法运作的,但是,如果把上面的前两个方法加到set方法里面,如下,KVO也会跑起来,哪怕方法名不是正规的set方法。

- (void)changeValue:(NSString *)value {
    [self willChangeValueForKey:@"value"];
    _value = value;
    [self didChangeValueForKey:@"value"];
}

泛型

block 原理

iOS事件传递、响应者链

hitTest

pointInside