我有一個文件和設置模型之間的一對一關係:核心數據關係無法加載對一的關係
在建立一個文件時,相應的設置對象被創建。模型堅持核心數據。
當創建幾個文件(及關聯設置)後重新推出,應用程序重新加載的文件清單使用來選擇:
// Load delegate from shared application and context from delegate.
SampleAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = delegate.managedObjectContext;
// Create new request.
NSFetchRequest *request = [[NSFetchRequest alloc] init];
// Create entity description using delegate object context.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:context];
// Set entity for request.
[request setEntity:entity];
// Load array of documents.
NSError *error;
NSArray *documents = [context executeFetchRequest:request error:&error];
// Rlease descriptor.
[descriptor release];
// Release request.
[request release];
// Done.
return documents;
列表顯示正常(文件加載)。但是,當試圖訪問程序退出給出的任何文檔的設置時:
程序接收信號:「SIGABRT」。
當用戶選擇一個按鈕時,觸發設置的修改。奇怪的是,該程序不會崩潰,如果添加下面的代碼片段只是退回單據上加載之前(即如果關係訪問,同時加載):
for (Document *document in documents)
{
NSLog(@"document.name: %@", document.name);
NSLog(@"document.settings.stroke: %@", document.settings.stroke);
NSLog(@"document.settings.stroke: %@", document.settings.stroke);
}
的關係的性質是「(非原子,保留)「並使用」@dynamic「。有任何想法嗎?謝謝!
你有殭屍跑嗎?代碼看起來很好,我懷疑存在某種內存管理問題。 – 2010-08-27 22:03:06
@martin,我不太熟悉XCode性能工具,但是當我選擇「運行>使用性能工具運行」時,殭屍顯示爲灰色。我需要做什麼才能使用它?謝謝。 – 2010-08-27 22:12:18
NSZombie啓用描述在這裏:http://stackoverflow.com/questions/1211923/how-to-use-nszombie-in-xcode – NWCoder 2010-08-27 22:59:47