【发布时间】:2015-04-30 04:04:12
【问题描述】:
我在 CoreData 数据库中存储 ä、ö、ü、ß 字符时遇到问题,后来以正确的形式读取它们并在 UILabel 中显示为文本。我存储为NSString,例如“äüß”,但由于从数据库读取,我得到了奇怪的字符。知道如何读取NSString 属性的正确值吗?
更新:
存储到CoreData数据库:
OCDatabaseFloor *floor = (OCDatabaseFloor*) [NSEntityDescription insertNewObjectForEntityForName:FLOOR_ENTITY_NAME inManagedObjectContext:managedObjectContext];
[floor setFloorName:floorName];
[self saveContext];
保存上下文功能正在保存对数据库的更改。
从数据库楼层对象中检索:
NSFetchRequest *fetch = [[NSFetchRequest alloc]init];
NSEntityDescription *entity = [NSEntityDescription entityForName:FLOOR_ENTITY_NAME inManagedObjectContext:managedObjectContext];
[fetch setEntity:entity];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"floorID == %d",[floorID intValue]];
[fetch setPredicate:pred];
NSArray *floors = [managedObjectContext executeFetchRequest:fetch error:nil];
return [floors objectAtIndex:0];
还有OCDatabaseFloor类:
@interface OCDatabaseFloor : NSManagedObject
@property (nonatomic, retain) NSNumber * floorID;
@property (nonatomic, retain) NSString * floorName;
@end
【问题讨论】:
-
你现在如何存储和检索字符串?
-
我将字符串属性添加到 CoreData 实体。创建了 ManagedObject 子类。还创建了将数据存储到数据库并获取数据的数据库管理器类。
-
让我提一下,一切都使用英文字母和特殊字符。但是,当我创建包含这 4 个字符的德语本地化时,它们没有使用相同的功能正确保存。
-
我的意思是,向我们展示如何存储和检索字符串的实现(即代码)。是否对字符串进行了后/预处理?
-
我用代码更新了问题。没有字符串的前/后处理。我按原样存储它。问题是当我在数据库中存储后立即使用应用程序时一切正常,但是当我重新启动应用程序并从数据库中再次读取它时,字符串没有按应有的方式显示。
标签: ios objective-c core-data