Evg*_*ban 5 objective-c ios xcode6
我的应用程序工作得很好,直到我下载新的Xcode,现在它被错误"信号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'
Run Code Online (Sandbox Code Playgroud)
我知道,这些信息可能不足以理解发生了什么,但我不知道从哪里开始搜索.如果setter方法有错误,为什么我的应用程序之前有效?是否有任何新的更改阻止应用启动?
PlaceHolder是一个对象,它包含属性(如图像链接,文本等).此外,还有一个新的"黄色"警告 - Auto property synthesis will not synthesize property 'description' because it is 'read-write' but it will be synthesized 'read-only' via another property
Jon*_*nah 10
您似乎已定义了一个description属性.不幸的是NSObject已经有了description方法.由于您可能不是故意在子类中尝试覆盖此方法,因此这可能不是一个安全的操作.看起来在iOS 7 SDK和Xcode 5下你的属性取代了方法NSObject.在iOS 8 SDK和Xcode 6中,情况并非如此(可能是由于-description方法定义方式的变化),因此您会得到不同的行为.
考虑重命名此属性以避免此类冲突.description是一个有用的调试工具,你可能不想意外地放弃这个类.
非常感谢你的帮助.
Description是PlaceHolder类的属性:
@property (nonatomic, retain) NSString *description;
Run Code Online (Sandbox Code Playgroud)
简单地放入@synthesize description;PlaceHolder类的实现(.m)文件就解决了问题.由于某种原因,新的Xcode通过"只读"属性合成它,并导致SIGBART错误,因为app尝试写入此属性(由于某种原因只读取).
我希望这些信息可能对面临类似问题的人有所帮助.
| 归档时间: |
|
| 查看次数: |
1411 次 |
| 最近记录: |