0
我試圖實現簡單的Core Data類來存儲和檢索從服務器下載的不同語言字符串(數組)。到目前爲止,我已經在App Delegate中創建了創建的Core Data模板,使用一個Entity「MyArray」和一個Attribute「language」創建了數據模型,並編寫了以下示例代碼以存儲和檢索這些數組。既然這兩個字符串數組存儲在相同的屬性「語言」中,我如何檢索中文語言數組?iOS核心數據:區分Transformable屬性中的多個對象
// Fetch arrays code
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyArray" inManagedObjectContext:context];
[request setEntity:entity];
NSArray *results = [context executeFetchRequest:request error:nil];
for (NSManagedObject *object in results) {
NSArray *a = [object valueForKey:@"language"];
// Use array
}
-(void)storeEnglishStrings {
NSArray *array = [[NSArray alloc] initWithObjects:@"str1",@"str2", @"str3", @"str4", @"str5", nil];
NSManagedObject *object = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[object setValue:array forKey:@"language"];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
-(void)storeChineseStrings {
NSArray *array = [[NSArray alloc] initWithObjects:@"串1",@"串2", @"串3", @"串4", @"串5", nil];
NSManagedObject *object = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[object setValue:array forKey:@"language"];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
...所以我不能在對象的基礎上區分它們嗎?我懷疑Attribute如何存儲多個值!執行[object setValue:array forKey:@「language」];應該覆蓋之前的值。不應該嗎?它不斷追加的東西!我必須錯過一些基本概念。如果他們正在創建不同的對象,那麼他們必須有一些東西來區分它們。 – applefreak
如果您需要存儲多個值,請嘗試創建一個新實體以及它們之間的一對多關係。查看我鏈接的文檔,以便更多地瞭解核心數據。 – J2theC