以“new”前缀开头的属性名称会导致iOS中出现BAD_ACCESS错误

以“new”前缀开头的属性名称会导致iOS中出现BAD_ACCESS错误,第1张

概述我的属性在我的NSManagedObject类中声明,名称为“newPrice”,它导致“zombie object”.经过几个小时的调试后,我发现方法存在问题,即释放此对象但不保留它.将此属性重命名为“priceNew”后一切顺利.我不明白为什么这会造成问题. 财产声明: @property (nonatomic, retain) NSNumber * newPrice; 此调用导致问题: [s 我的属性在我的NSManagedobject类中声明,名称为“newPrice”,它导致“zombIE object”.经过几个小时的调试后,我发现方法存在问题,即释放此对象但不保留它.将此属性重命名为“priceNew”后一切顺利.我不明白为什么这会造成问题.

财产声明:

@property (nonatomic,retain) NSNumber * newPrice;

此调用导致问题:

[self setPIEceStateWithPrice:self.action.newPrice];

传递重命名的参数后像self.action.priceNew一切顺利……

解决方法 不要那样做.

在Objective-C命名约定中,名称以new开头的方法应返回保留对象.使用ARC,该命名约定成为必需.这意味着正常的ARC编译方法永远不应该以名称new开头,因为编译器将假定它的保留计数为1.

引用文档:

You own any object you create

You create an object using a method whose name begins with “alloc”,“new”,“copy”,or “mutablecopy” (for example,alloc,newObject,or mutablecopy).

总结

以上是内存溢出为你收集整理的以“new”前缀开头的属性名称会导致iOS中出现BAD_ACCESS错误全部内容,希望文章能够帮你解决以“new”前缀开头的属性名称会导致iOS中出现BAD_ACCESS错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1007034.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存