C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – Objective C – 自定义@synthesize?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_262_2@
有可能以某种方式创建一个自定义的@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";
}
@H_262_2@ @H_502_22@解决方法
不过,你可以尝试不同的东西.我不会在几天前想到这一点,但我碰巧正在阅读 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; \
}

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

本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。@H_262_2@