【发布时间】:2009-08-24 18:08:03
【问题描述】:
我正在核心数据领域中迈出第一步(而且我对 iPhone 开发也很陌生),我发现了一种我无法解释的行为。 我声明了一个 NSManagedObject 的子类并定义了一些属性,其中一些是 NSString * 类型,MyObject.h 类似于:
@interface MyObject : NSManagedObject {
}
@property (nonatomic, retain) NSString *contentFile;
@property (nonatomic, retain) NSString *contentPath;
@property (nonatomic, retain) NSDate *creationDate;
@property (nonatomic, retain) NSString *name;
@end
现在,如果我尝试创建一个对象实例并为 name 属性分配一个值,当我尝试打印回属性的内容时,它似乎被破坏了。 在定义了整个核心数据堆栈的 AppDelegate 中,我写道:
MyObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"MyObject"
inManagedObjectContext:self.managedObjectContext];
newObject.name = @"Testing";
NSLog([NSString stringWithFormat:@"Name: %s\n", newObject.name]);
我在输出控制台中得到的是
2009-08-24 20:03:55.176 MyApp[15727:20b] Name: ‡}00»
我不明白我是做错了什么还是忘记了什么。有人可以帮忙吗?
【问题讨论】:
标签: iphone cocoa cocoa-touch core-data nsstring