语义问题:财产的合成吸气剂遵循可可命名约定来返回“拥有的”物体
|
我目前正在使用iOS 5 SDK尝试开发我的应用。
我正在尝试将NSString设置为属性,然后将其合成到.m文件中(我之前没有做任何事情)。现在,我遇到了这个问题:“语义问题:Property的综合getter遵循可可命名约定,用于返回\'own \'对象。\“
这是我的代码:
。H
@interface ViewController : UIViewController {
NSString *newTitle;
}
@property (strong, nonatomic) NSString *newTitle;
.m
@synthesize newTitle;
有人知道我该如何解决吗?
谢谢!!
没有找到相关结果
已邀请:
10 个回复
旗低饶彤
的方法,因此产生警告/错误。
应该是
属性的getter方法,但是命名约定指出,名称以
开头的方法会返回调用者拥有的对象,而getter方法并非如此。 您可以通过以下方法解决此问题: 重命名该属性:
保留属性名称并指定一个不以特殊方法名称前缀之一开头的getter名称:
保留属性名称和getter名称,并告诉编译器,即使getter名称以
开头,它也属于
方法族,而不是
方法族:
请注意,即使此解决方案允许您将
保留为属性名称和getter名称,但是使用名为
的方法不返回调用方拥有的对象可能会使其他人混淆您的代码。 作为记录,Apple已发布过渡到ARC发行说明,其中指出: 您不能给属性以
或
开头的名称。 他们已经收到通知,他们的陈述不准确:罪魁祸首是吸气剂方法名称,而不是属性名称。 2015年1月17日修改:我刚刚注意到最近对Clang做出的一项承诺,建议在属性名称与特殊方法族前缀之一匹配的一般情况下,建议上面的选项3(使用
),包括修复程序。 Xcode最终可能会合并此更改。
辽躺
峨躬坎抬焚
仿普
箩冀娥
,然后合成该属性。我们曾经不得不声明实例变量和属性。不再。 现在,我相信正确的方法如下: 。H
.m
合成属性“ 2”的实例变量。您不希望实例变量与属性相同-太容易出错。 请参见示例:声明属性和合成访问器
埃输林桨铃
扇献隙
剑哎
窝头菊
用于解决命名问题。
我们可以找到其定义如下
\'ns_returns_not_retained \'属性是\'ns_returns_retained \'的补充。如果函数或方法似乎遵循Cocoa约定并返回保留的Cocoa对象,则此属性可用于指示返回的对象引用不应被视为返回给调用方的“拥有”引用。 Foundation框架定义了一个宏NS_RETURNS_NOT_RETAINED,该宏在功能上等效于以下所示的宏。 在此处附上更多详细信息。
藕挝