目标-C:类别中的属性/实例变量由于无法在Object-C中的类别中创建合成属性,因此我不知道如何优化以下代码:@interface MyClass (Variant)@property (nonatomic, strong) NSString *test;@end@implementation MyClass (Variant)@dynamic test;- (NSString *)test {
NSString *res;
//do a lot of stuff
return res;}@end这个试验方法在运行时被多次调用,我正在做大量的工作来计算结果。通常,在第一次调用该方法时,我使用一个合成属性将该值存储在一个Ivar_test中,并在下一次返回该值。如何优化上述代码?
3 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
#import <objc/runtime.h>static void *MyClassResultKey;@implementation MyClass- (NSString *)test { NSString *result = objc_getAssociatedObject(self, &MyClassResultKey); if (result == nil) { // do a lot of stuff result = ...; objc_setAssociatedObject(self, &MyClassResultKey, result, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } return result;}@end
- 3 回答
- 0 关注
- 562 浏览
添加回答
举报
0/150
提交
取消