加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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; 
}

会工作?我很抱歉我没有时间为您正确测试它,所以请将此作为公平警告,这不是一个快速的复制/粘贴解决方案.对于那个很抱歉.希望它仍然有用!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读