目標(biāo)-C:類別中的屬性/實(shí)例變量由于無法在Object-C中的類別中創(chuàng)建合成屬性,因此我不知道如何優(yōu)化以下代碼:@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這個試驗(yàn)方法在運(yùn)行時(shí)被多次調(diào)用,我正在做大量的工作來計(jì)算結(jié)果。通常,在第一次調(diào)用該方法時(shí),我使用一個合成屬性將該值存儲在一個Ivar_test中,并在下一次返回該值。如何優(yōu)化上述代碼?
3 回答

拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超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 關(guān)注
- 591 瀏覽
添加回答
舉報(bào)
0/150
提交
取消