3つの属性を持つコアデータに「Categories」という名前のエンティティが1つあります。
- parent_id
- category_id
- 種別名
ルートディクショナリの下のCategoriesFile.plistに、次の名前の3つの配列を作成しました。
- parent_id
- category_id
- 種別名
そして、これらの配列に適切なデータを入力しました。
今、私はデータを挿入するために次のコードを書きました
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"CategoriesFile.plist"];
if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath])
{
// if not in documents, get property list from main bundle
plistPath = [[NSBundle mainBundle] pathForResource:@"CategoriesFile" ofType:@"plist"];
}
// read property list into memory as an NSData object
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSString *errorDesc = nil;
NSPropertyListFormat format;
// convert static property list into dictionary object
NSDictionary *thisGardenDictionary = [[NSDictionary alloc] init];
NSDictionary *plistDictionary = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];
if (!plistDictionary)
{
NSLog(@"Error reading plist: %@, format: %d", errorDesc, format);
}
[plistDictionary enumerateKeysAndObjectsWithOptions:NSEnumerationConcurrent usingBlock:^(id key, id object, BOOL *stop) {
NSManagedObject *manObj = [NSEntityDescription insertNewObjectForEntityForName:@"Categories" inManagedObjectContext:context];
[manObj setValue:[thisGardenDictionary objectForKey:@"category_id"] forKey:@"category_id"];
[manObj setValue:[thisGardenDictionary objectForKey:@"parent_id"] forKey:@"parent_id"];
[manObj setValue:[thisGardenDictionary objectForKey:@"category_name"] forKey:@"category_name"];
}];
NSError *error;
if(![context save:&error])
{
NSLog(@"Whoops, couldn't save %@",[error localizedDescription]);
}
しかし、私は空白の結果を取得します。
誰かが私が欠けているものを言うことができますか?