我試圖以編程方式訪問關係(一對多)。 我的數據模型包含一個名爲language(帶有兩個字符串屬性)的NSManagedEntity ,它與名爲WordCategory(一對多)的實體有關係。 我使用NSFetchRequest來獲取所有的語言實體。這工作正常。 我得到了關係的valueForKey並且工作正常。我可以使用它的對象。然而,當我嘗試發送郵件數的NSSet中存儲的 WordCategory對象,我得到一個核心數據:訪問關係時,NSSet上的計數方法失敗
換句話說,這條線的工作原理:
NSLog(@"word category count %@",[[wordCategory anyObject] valueForKey:@"name"]);
這一個不:
NSLog(@"word category count %@",[wordCategory count]
我在調試器中得到一條消息:EXC_BAD_ACCESS。
下面的代碼的其餘部分:
NSManagedObjectContext *moc = [myAppDelegate managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Language" inManagedObjectContext:moc]];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error: &error];
if (error) {
[NSApp presentError:error];
return;
}
NSManagedObject *obj = [results objectAtIndex:0];
NSSet *wordCategory = [obj valueForKey:@"category"];
NSLog(@"word category count %@",[wordCategory count]);
我會感激比任何人都可以在這個神祕有何啓示。謝謝你的幫助!
這是一個NSUInteger,所以他應該使用%lu。請參閱 下的「平臺相關性」http://developer.apple.com/mac/library/documentation/cocoa/conceptual/Strings/Articles/formatSpecifiers.html – bobDevil 2010-03-26 20:29:11
感謝您的信息。你是對的。我會更新帖子,以便每個人都可以輕鬆閱讀。 – 2010-03-26 20:37:19
謝謝!誰會想到答案如此簡單明瞭 – theprole 2010-03-26 20:48:52