이 같은 일을하고 있지만 저장하기 "항목"에 대한 데이터를 나타내는 사전의 배열을 포함하는 좀 더 복잡한 PLIST에. 아직 일부 디버그 로깅이 있습니다. 희망은 누군가에게 유용합니다.
NSManagedObjectContext *context = self.managedObjectContext;
NSError *error;
NSFetchRequest *topicRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *topicEntityDescription = [NSEntityDescription entityForName:@"Topic" inManagedObjectContext:context];
[topicRequest setEntity:topicEntityDescription];
NSManagedObject *newTopic = nil;
NSArray *topics = [context executeFetchRequest:topicRequest error:&error];
if (error) NSLog(@"Error encountered in executing topic fetch request: %@", error);
if ([topics count] == 0) // No topics in database so we proceed to populate the database
{
NSString *topicsPath = [[NSBundle mainBundle] pathForResource:@"topicsData" ofType:@"plist"];
NSArray *topicsDataArray = [[NSArray alloc] initWithContentsOfFile:topicsPath];
int numberOfTopics = [topicsDataArray count];
for (int i = 0; i<numberOfTopics; i++)
{
NSDictionary *topicDataDictionary = [topicsDataArray objectAtIndex:i];
newTopic = [NSEntityDescription insertNewObjectForEntityForName:@"Topic" inManagedObjectContext:context];
[newTopic setValuesForKeysWithDictionary:topicDataDictionary];
[context save:&error];
if (error) NSLog(@"Error encountered in saving topic entity, %d, %@, Hint: check that the structure of the pList matches Core Data: %@",i, newTopic, error);
};
}
출처
2013-01-17 09:25:04
Tim
매우 감사합니다. –
'NSDictionary * node = [dict objectForKey : key]'가 아니어야합니까? 그렇지 않으면 NSDictionary에 대한 인식기가 아닌 '키'에 대한 경고 메시지가 표시됩니다. – sirvine
@ 솔잎! – NeverBe