【发布时间】:2009-09-25 11:56:30
【问题描述】:
我正在编写一个使用核心数据进行存储的 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
创建和保存此类的新实例可以正常工作,但是当我尝试访问此类实例的“描述”属性时,程序意外退出。在 Instruments 中运行时,我可以看到就在崩溃之前,大量内存被快速分配(这可能是应用退出的原因)。
访问属性的代码如下所示:
self.clientName = [[client.name copy] autorelease];
self.clientRate = [[client.rate copy] autorelease];
self.textView.text = client.description; // This is where it crashes
请注意,可以毫无问题地访问其他属性(名称和速率)。
那我做错了什么?
【问题讨论】:
-
你不应该使用点符号来描述,因为它不是一个属性,它只是一个方法。当然点表示法有效,但我相信最终它会在编译器或 Clang 静态分析器中引起警告。