我有一串照片網址,屬於它們的位置(e.x .: googleusercontent.com/photo.gif)。我使用「二進制數據」類型將該單個字符串(字符串可能包含四個其他URL)保存到Core Data中。當我從核心數據中檢索URL時,它會正確顯示字符串的數量,但不會在for循環之外顯示正確的數據。NSMutuableArray&Core Data不正確行爲
// Loop through the photo selection to get the urls
for (int i=0; i < self.tempPhotos.count; i++)
{
self.photo = [ self.tempPhotos objectAtIndex:i];
self.image = [ photo originalImage];
NSString *urls = [image.URL absoluteString]; // <-- here we get the urls and store
self.selected_urls = urls;
NSData * data = [NSKeyedArchiver archivedDataWithRootObject:urls];
self.group.selectedurl = data; // assign it to the core data object
}
// Now we're out of the for loop, here is where it will not retrieve and log properly. if i put this inside the for loop, it will. why is that?
NSMutableArray *temp = [NSMutableArray *)[NSKeyedUnarchiver unarchiveObjectWithData:self.group.selectedurl];
NSLog(@"%@",temp);
如果我把NSLog放在for循環中,我可以正確地得到它。它應該是這個樣子: - 「googleusercontent.com/photo1.gif」 - 「googleusercontent.com/photo2.gif」
當我取回的for循環外的核心數據對象,它給了我這個: - 「googleusercontent.com/photo1.gif」 - 「googleusercontent.com/photo1.gif」
我不知道爲什麼它正在裏面for循環,但以外的任何地方它不會正常工作,我覺得我缺少一個明顯的步驟。我可以得到任何幫助嗎?
你可以把實際的代碼?上面似乎有代碼缺失/不正確。例如,NSData沒有變量。一個地方,你有selected_url,在其他地方它seldctedurl等,這是很容易查明問題,當我們有實際的代碼和所有的聲明。我認爲這是一個聲明問題。 – user2734323
NSData現在有一個變量。 self.selected_urls是頭文件中聲明的字符串,self.group.selectedurl是核心數據對象。那有意義嗎? – jsmos