iOS: Как узнать, совместимо ли свойство с KVO?

В Руководстве по программированию наблюдения за ключевыми значениями в разделе Регистрация для наблюдения за ключевыми значениями говорится: «Обычно свойства в фреймворках, поставляемых Apple соответствуют требованиям KVO только в том случае, если они задокументированы как таковые ". Но я не нашел в документации свойств, которые задокументированы как KVO-совместимые. Не могли бы вы указать мне на какие-нибудь?

В частности, я хотел бы знать, совместим ли @property (неатомный, сохранить) UIViewController * rootViewController из UIWindow KVO. Причина в том, что я добавляю свойство rootViewController в UIWindow для iOS

@interface UIWindow (Additions)

#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_4_0
@property (nonatomic, retain) UIViewController *rootViewController;
#endif;

@end

@implementation UIWindow (Additions)

#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_4_0
@dynamic rootViewController;

- (void)setRootViewController:(UIViewController *)newRootViewController {
    if (newRootViewController != _rootViewController) {
        // Remove old views before adding the new one.
        for (UIView *subview in [self subviews]) {
            [subview removeFromSuperview];
        }
        [_rootViewController release];
        _rootViewController = newRootViewController;
        [_rootViewController retain];
        [self addSubview:_rootViewController.view];
    }
}
#endif

@end

18
задан Cœur 25 March 2019 в 16:37
поделиться