如果我在类别实现中使用 objc_setAssociatedObject/objc_getAssociatedObject 来在setter方法中存储一个模拟的实例变量,由于在setter方法中声明的任何变量都会超出getter方法的范围,那么我该如何在getter方法中访问键?
编辑:为了澄清,如果我使用以下模式,那么我应该在哪里声明STRING_KEY,以便在setter和getter方法中都可以使用它。
编辑:为了澄清,如果我使用以下模式,那么我应该在哪里声明STRING_KEY,以便在setter和getter方法中都可以使用它。
@interface NSView (simulateVar)
-(void)setSimualtedString:(NSString *)myString;
-(NSString *)simulatedString;
@end
@implementation NSView (simulateVar)
-(void)setSimualtedString: (NSString *)myString
{
objc_setAssociatedObject(self, &STRING_KEY, myString, OBJC_ASSOCIATION_RETAIN);
}
-(NSString *)simulatedString
{
return (NSString *)objc_getAssociatedObject(self, &STRING_KEY);
}
@end