2012-08-28 114 views
-1

嗨我想能夠撕毀核心數據中的一些信息,但我不確定如何檢查文件是否正確保存。我嘗試使用NSLog,但它調用時返回null。我有一個字典,它有一個uniqueID和一個我想要保存的標題。我將其與數據庫的上下文一起傳遞。然後我排序數據庫來檢查它是否有任何重複,如果沒有,那麼我添加文件。如何檢查是否存儲在CoreData

+(VacationPhoto*) photoWithFlickrInfo: (NSDictionary*) flickrInfo inManagedObjectContext: (NSManagedObjectContext*) context{ 

//returns the dictionary 
NSLog(@"Photo To Store =%@", flickrInfo); 


VacationPhoto * photo = nil; 

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"VacationPhoto"]; 
request.predicate = [NSPredicate predicateWithFormat:@"uniqueID = %@", [flickrInfo objectForKey:FLICKR_PHOTO_ID]]; 
NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES]; 
request.sortDescriptors = [NSArray arrayWithObject:descriptor]; 

NSError *error = nil; 
NSArray *matches = [context executeFetchRequest:request error:&error]; 

if (!matches || [matches count] > 1) { 
    // handle error 
} else if ([matches count] == 0){ 
    photo.title = [flickrInfo objectForKey:FLICKR_PHOTO_TITLE]; 
//Returns NULL when called 
    NSLog(@"title = %@", photo.title); 
    photo.uniqueID = [flickrInfo objectForKey:FLICKR_PHOTO_ID]; 
//Returns NULL when called 
    NSLog(@"ID = %@", photo.uniqueID); 

} else { 
//If photo already exists this is called 
    photo = [matches lastObject]; 
} 

return photo; 

} 
+0

我不認爲文件被正確保存,因爲我試圖調用該方法兩次使用相同的信息,而不是說一個副本的第二期間已發現迭代它,而不是進入if語句,當沒有這樣的文件 –

回答

0

原來我沒有調用該方法insertNewObjectForEntityForName當我加入將信息輸入數據庫,這就是爲什麼沒有被保存。之後,我加入它NSLogs正在提供正確的信息

photo = [NSEntityDescription insertNewObjectForEntityForName:@"VacationPhoto" inManagedObjectContext:context]; 
    photo.title = [flickrInfo objectForKey:FLICKR_PHOTO_TITLE]; 
    NSLog(@"title = %@", photo.title); 
    photo.uniqueID = [flickrInfo objectForKey:FLICKR_PHOTO_ID]; 
    NSLog(@"ID = %@", photo.uniqueID); 
0

看到你的核心數據變化的最簡單的方法,就是用一個​​

去模擬器文件夾,找到應用程序,進入到文件,打開該文件夾爲您

XCODE_SIMLATOR_XX

找到

應用

,並發現有你的應用程序,打開文檔,並找到yourApp.sqlite, 與源碼瀏覽器中打開它,並檢查所有的變化很容易,不建議編輯數據結構,coredata不sqlite的,只是使用SQLite保存數據,但是你必須要習慣爲核心的數據對象的方法;)

好運

+0

是否有任何其他方式通過xcode做到這一點? –

+0

我想出了問題,但您的解決方案看起來很有趣,我會研究它,+ rep –