我目前正在使用iOS 5 SDK开发我的应用程序。 我试图使一个NSString属性,然后合成它在.m文件(我已经这样做之前没有问题)。现在,我遇到了这样的问题:“语义问题:属性的合成getter遵循Cocoa命名约定,用于返回‘拥有的’对象。”

这是我的代码: . h

@interface ViewController : UIViewController {
     NSString *newTitle;
}
@property (strong, nonatomic) NSString *newTitle;

.m

@synthesize newTitle;

有人知道我该怎么补救吗? 谢谢! !


当前回答

手动编写与属性名称相同的setter可以消除此警告。

其他回答

在CoreData中,如果你在属性中使用“new…”(正常编译),它会随机崩溃并出现“坏访问”异常。

没有崩溃日志,并且“所有异常断点”所显示的行对您没有任何帮助。

除了你应该/不能在你的属性名前使用“new”这个问题,让我们再说一件事:尽量避免在名字前使用“new”。“新”取决于时间。目前它对您来说是新的,但一段时间后,您可能想再次实现一些新的东西。所以在名字中使用“new”总是不好的。试着这样想:在编程世界中,“新”总是在创造一些东西:一些东西的一个新实例。

在你的情况下,当你想分配一个不同的标题,那么当前名称你的属性titlreplacement。

还有一件事:尝试在函数和方法命名时先使用动词,比如setSomething或getSomething。 但在属性中,尝试先命名对象,如heightMinimum, heightMaximum等。->当你在编码时使用检查器时,你总是在寻找对象。试试吧。: -)

以new开头的成员的名称将触发警告。将名称更改为editedTitle,警告将消失。我无法找到文档确认这一点,但通过测试能够确定,以'new'开始的成员变量加重编译器。

试试这个:

@property (nonatomic,retain) NSString *newTitle;

不可接受的对象名称

newButton copyLabel allocTitle

可接受对象名称

neueButton mCopyLabel _allocTitle

#arc #auto- synthetic #xcode-4.6.1

**编辑**

显然你也不能使用mutableCopy。