iPhone 访问NSManagedObject中的属性会导致内存峰值和崩溃

更新时间:2024-05-09 下载TXT文档 下载Word文档

我正在编写一个使用核心数据进行存储的iPhone应用程序。我的所有NSManagedObject子类都已由xcode根据我的数据模型自动生成。这些类之一如下所示:

@interface Client :  NSManagedObject  
{
}

@property (nonatomic, retain) NSNumber * rate;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSString * description;
@property (nonatomic, retain) NSSet* projects;

@end

创建和保存此类的新实例很好,但是当我尝试访问此类实例的'description'属性时,程序意外退出。在Instruments上运行时,我可以看到崩溃之前,大量内存已迅速分配(这可能是应用程序退出的原因)。

访问该属性的代码如下:

self.clientName = [[client.name copy] autorelease];
self.clientRate = [[client.rate copy] autorelease];
self.textView.text = client.description; // This is where it crashes

请注意,可以毫无问题地访问其他属性(名称和比率)。 [短码网_DuanMa.NET]

那我做错了什么?

  • 您不应该使用点表示法进行描述,因为它不是属性,而只是方法。可以肯定的点符号,但我相信最终它将在编译器或Clang Static Analyzer中引起警告。

摘自Apple文档(核心数据编程指南):

请注意,属性名称不能与NSObject或NSManagedObject的任何无参数方法名称相同,例如,您不能为属性指定名称" description"(请参见NSPropertyDescription)。

如jbrennan所述,这应该是导致您遇到问题的原因。

  • 是的,就是这样。终于解脱了!非常感谢!

以上就是短码网小编为大家整理的《iPhone 访问NSManagedObject中的属性会导致内存峰值和崩溃》相关内容,希望大家喜欢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!

iPhone 访问NSManagedObject中的属性会导致内存峰值和崩溃》文档下载仅供参考学习,下载后请在24小时内删除。

转载注明出处:https://www.duanma.net/article/e963aa4f248.html

回到顶部