1
我使用NSData在我的應用程序中保留圖像。我省像這樣的圖像(在我的應用程序代表):保存數據 - 在模擬器上工作,而不是在設備上工作
- (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"Saving data");
NSData *data = UIImagePNGRepresentation([[viewController.myViewController myImage]image]);
//Write the file out!
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path_to_file = [documentsDirectory stringByAppendingString:@"lastimage.png"];
[data writeToFile:path_to_file atomically:YES];
NSLog(@"Data saved.");
}
,然後我加載它回來像這樣(在我的視圖控制器,viewDidLoad
下):
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path_to_file = [documentsDirectory stringByAppendingString:@"lastimage.png"];
if([[NSFileManager defaultManager] fileExistsAtPath:path_to_file])
{
NSLog(@"Found saved file, loading in image");
NSData *data = [NSData dataWithContentsOfFile:path_to_file];
UIImage *temp = [[UIImage alloc] initWithData:data];
myViewController.myImage.image = temp;
NSLog(@"Finished loading in image");
}
此代碼屢試不爽在模擬器上,但在設備上,似乎永遠不會重新加載圖像。我很確定它可以保存,但我沒有查看文件系統。
我在做些奇怪的事情嗎?模擬器有不同的方式來訪問它的目錄比設備?
謝謝!
這是否與權利管理有關? – DMan 2010-04-21 04:37:52
什麼樣的權利管理?模擬器與某種權限相關的方式不同於設備嗎?感謝您的答覆! – 2010-04-21 22:23:58
嗯,我不是一個iPhone開發者,但我聽說iPhone非常嚴格......並且你的產品線'很確定它可以省下來' - 是嗎?我看你有一個NSLog,但如果沒有,它應該返回一個錯誤。 – DMan 2010-04-21 22:42:51