新增具有類別的屬性

可以使用關聯物件(Objective-C 執行時的一個功能)將屬性新增到類別中。

請注意,retain, nonatomic 的屬性宣告與 objc_setAssociatedObject 的最後一個引數匹配。有關說明,請參閱將物件附加到另一個現有物件

#import <objc/runtime.h>

@interface UIViewController (ScreenName)

@property (retain, nonatomic) NSString *screenName;

@end

@implementation UIViewController (ScreenName)

@dynamic screenName;

- (NSString *)screenName {
    return objc_getAssociatedObject(self, @selector(screenName));
}

- (void)setScreenName:(NSString *)screenName {
    objc_setAssociatedObject(self, @selector(screenName), screenName, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

@end