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

这是我的代码: . h

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

.m

@synthesize newTitle;

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


当前回答

不可接受的对象名称

newButton copyLabel allocTitle

可接受对象名称

neueButton mCopyLabel _allocTitle

#arc #auto- synthetic #xcode-4.6.1

**编辑**

显然你也不能使用mutableCopy。

其他回答

看起来巴伐利亚的建议并不是你想做的。你所要做的就是声明一个实例变量NewTitle,然后合成属性。我们过去必须声明实例变量和属性。没有更多的。

现在,我认为正确的做法是:

.h

@interface ViewController : UIViewController

@property (nonatomic, strong) NSString *newTitle;

.m

@synthesize newTitle = _newTitle; // Use instance variable _newTitle for storage

属性newTitle的实例变量是合成的。你不希望你的实例变量和你的属性一样——太容易出错了。

参见示例:声明属性和合成访问器

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

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

ARC不允许在属性名称中使用“New....”。但是你可以通过改变getter名称来使用"newTitle"。

@property (nonatomic, strong, getter=theNewTitle) NSString *newTitle;

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

不可接受的对象名称

newButton copyLabel allocTitle

可接受对象名称

neueButton mCopyLabel _allocTitle

#arc #auto- synthetic #xcode-4.6.1

**编辑**

显然你也不能使用mutableCopy。