objective-c – Objective C – 自定义@synthesize?
发布时间:2020-12-16 09:34:26 所属栏目:百科 来源:网络整理
导读:有可能以某种方式创建一个自定义的@synthesize来生成客户getter,setters ?? 例如: @interface@property (nonatomic,retain) MyObject *object;@end@implementation@lazyInitialize object;@end 然后以某种方式定义@lazyInitialize以生成一个惰性初始化方法
有可能以某种方式创建一个自定义的@synthesize来生成客户getter,setters ??
例如: @interface @property (nonatomic,retain) MyObject *object; @end @implementation @lazyInitialize object; @end 然后以某种方式定义@lazyInitialize以生成一个惰性初始化方法 //@lazyInitialize - (id)"property name" { if (!"property name") { "property name" = [[["property name" class] alloc] init]; } return "property name"; } 解决方法
不过,你可以尝试不同的东西.我不会在几天前想到这一点,但我碰巧正在阅读
Cocoa With Love.在帖子链接中,他讨论了如何制作一个#define宏,它可以“生成”整个类的单身人士到哪里你从中调用了宏.你可以
download his code(可以根据你自己的实现提出想法).
或许类似(警告:未经测试的代码): #define SYNTHESIZE_LAZY_INITIALIZER_FOR_OBJECT(objectName,objectType) - (objectType *)objectName { if(!objectName) { objectName = [[objectType alloc] init]; } return objectName; } - (void)set##objectName:(objectType *)value { [value retain]; [objectName release]; objectName = value; } 会工作?我很抱歉我没有时间为您正确测试它,所以请将此作为公平警告,这不是一个快速的复制/粘贴解决方案.对于那个很抱歉.希望它仍然有用! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |