添加具有类别的属性

可以使用关联对象(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