2015-05-12 55 views
0

所以我有一個圖像陣列,我想在本地存儲,因爲每次下載它們都會花費不必要的精力。我讀過,我不應該在NSUserDefaults中存儲圖像,這很好,但我不能在我的生活中找到任何有關如何將它作爲文件存儲在不會更改的目錄中的示例(iOS 8更改了UUID與每個創建一個新的文件夾,每次我在Xcode中運行它)。保存UIImage文件,而不是NSUserDefaults

我通常這裏有兩個問題:

  1. 可能有人幫我翻譯成ObjC嗎?我無法評論這篇文章,因爲我沒有足夠的代表......這是我需要幫助的帖子後面的一個快速部分。 Save images in NSUserDefaults?

  2. 我的另一個問題是,它似乎需要大量的時間在本地保存數據,無論是文件還是進入NSUserDefaults。這裏發生的是我的應用程序的用戶在本地存儲數據之前關閉應用程序。有什麼辦法可以防止這種情況發生?我可以添加一個ActivityIndi​​cator,當然,但我似乎無法找到任何回調,告訴我何時完成了保存數據的過程。

謝謝!

+0

只是不存儲完整路徑的圖像,並建立每次你想要訪問圖像文檔目錄的路徑。這樣,如果應用程序的UDID改變了,它不會影響你的路徑。 – rckoenes

回答

1

所以我設法解決它。問題是我只是混淆了路徑。如果任何人在這裏想從斯威夫特ObjC從鏈接在原崗位的翻譯是:

NSString* relativePath = [NSString stringWithFormat:@"image_%d.jpg", 1]; 
NSString* realPath = [self documentsPathForFileName:relativePath]; 

// Write image data to user's folder 
[self.ImageData writeToFile:realPath atomically:YES]; 

// Store path in NSUserDefaults 
[defaults setObject:relativePath forKey:@"path"]; 

NSString *relativePath = [defaults objectForKey:@"path"]; 
NSString *realPath = [self documentsPathForFileName:relativePath]; 
self.ImageData = [NSData dataWithContentsOfFile:realPath];