0 iphone cocoa cocoa-touch core-data nsstring
我正在移动我在Core Data领域的初步步骤(我也是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
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试创建一个对象实例并为name属性赋值,当我尝试打印属性的内容时,它似乎被破坏了.在AppDelegate中,定义了整个Core Data堆栈,我写道:
MyObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"MyObject"
inManagedObjectContext:self.managedObjectContext];
newObject.name = @"Testing";
NSLog([NSString stringWithFormat:@"Name: %s\n", newObject.name]);
Run Code Online (Sandbox Code Playgroud)
我在输出控制台得到的是
2009-08-24 20:03:55.176 MyApp[15727:20b] Name: ‡}00»
Run Code Online (Sandbox Code Playgroud)
我无法理解我是做错了什么还是忘记了什么.有人可以帮帮忙吗?
您需要使用%@格式说明符stringWithFormat:,因为它NSString是一个Objective-C对象:
NSLog([NSString stringWithFormat:@"Name: %@\n", newObject.name]);
Run Code Online (Sandbox Code Playgroud)
%s用于C字符串char*.有关更多信息,请查看字符串格式说明符.
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |