Ios 无法使用新的Xcode 6启动应用程序

Ios 无法使用新的Xcode 6启动应用程序,ios,objective-c,xcode6,Ios,Objective C,Xcode6,在我下载新的Xcode之前,我的应用程序工作得非常好,现在它因错误“signal SIGABRT”而停止,并指出: [PlaceHolder setDescription:]: unrecognized selector sent to instance 0x79838900 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PlaceHolder setDescripti

在我下载新的Xcode之前,我的应用程序工作得非常好,现在它因错误“signal SIGABRT”而停止,并指出:

[PlaceHolder setDescription:]: unrecognized selector sent to instance 0x79838900
    Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PlaceHolder setDescription:]: unrecognized selector sent to instance 0x79838900'
我知道,这些信息可能不足以理解发生了什么,但我不知道从哪里开始搜索。如果setter方法有错误,为什么我的应用程序以前可以工作?是否有任何新的更改阻止应用程序启动

占位符
是一个对象,包含属性(如图像链接、文本等)。
此外,还有一个新的“黄色”警告-
自动属性合成将不会合成属性“说明”,因为它是“读写”的,但它将通过另一个属性合成为“只读”
非常感谢您的帮助

说明是占位符类的属性:

@property (nonatomic, retain) NSString *description;
简单地把
@综合描述就解决了这个问题位于占位符类的实现(.m)文件中。出于某种原因,新的Xcode通过“只读”属性对其进行合成,这会导致SIGBART错误,因为应用程序试图写入该属性(出于某种原因,该属性是只读的)


我希望这些信息可能会对面临类似问题的人有所帮助。

您似乎已经定义了
说明
属性。不幸的是,
NSObject
已经有了一个方法。由于您可能没有故意在子类中重写此方法,因此这可能不是一个安全的操作。看起来在iOS 7 SDK和Xcode 5下,您的属性替换了
NSObject
上的方法。在iOS 8 SDK和Xcode 6中,情况并非如此(可能是由于定义
-description
方法的方式发生了变化),因此您会得到不同的行为


请考虑重命名此属性以避免此类冲突<代码>说明
是一个有用的调试工具,您可能不想意外放弃它。

清理应用程序->管理器->项目->应用程序的数据文件夹。'description'是自定义类的字段吗?如果你可以重命名它,那么就这么做吧,说明似乎在操作系统的某个地方被用作关键字。看起来
description
已经成为iOS 8的一个属性:谢谢你的澄清,乔纳!我正在使用一个名为“name”的属性,并且遇到了相同的问题。在这个原因中,我特别利用了这个变量的自定义功能(而不是覆盖描述),所以这个答案解决了我的问题。很高兴我能帮助你ColdLogicHow安全吗?我们这样做会遇到问题吗?@raulriera我认为更好的解决方案是在命名属性或IVAR时避免使用描述名称。