2012-07-04 111 views
0

我一直在嘗試保存用戶選擇的圖像。這裏是我的保存代碼:Xcode保存並加載圖像

-(IBAction)save123456 { 
     NSUserDefaults *myname = [NSUserDefaults standardUserDefaults]; 
     [myname setObject:noteview.image forKey:@"name"]; 

} 

這似乎是工作,但讓我知道如果我應該改變任何東西。現在這裏是我的加載代碼。

-(IBAction)load123456 { 
    NSUserDefaults *myname = [NSUserDefaults standardUserDefaults]; 
    NSString *tempstring = [myname stringForKey:@"name"]; 
     noteview.image = tempstring; 

} 

當我點擊加載按鈕時,圖像就消失了。哪裏不對。

我連接每一件事通過觸摸切,這是否重要?

謝謝!

回答

1

這一行:

noteview.image = tempstring; 

被分配一個 「NSString」 來應該是什麼 「UIImage」。

編輯:現在,我知道你在做什麼,you can not save a UIImage to a simple plist database like user defaults

您需要單獨地保存該文件,然後保存並加載到該文件的路徑,或需要的圖像的原始數據(即,「NSData」)保存和加載到用戶的默認值。

p.s.你對變量名稱的選擇很混亂。不要使用「myname」,而應使用「myDefaults」而不是「tempname」,使用「nameImage」(即更具描述性和可理解性的內容)。

+2

也許值得指出的是,如果這實際上是一個圖像,你不能以本地方式將其存儲在用戶默認值中。我不確定他是否在iOS或Mac OS X上工作,因爲上下文對於這個問題是不明確的。 –

+0

正確...因爲我正在對他的問題做更多的研究,我意識到不能保存UIImage ......但是一個*可以*從圖像保存NSData。 –

+0

好的,我正在使用iOS。好吧,我將如何保存使用NSData。對不起,我是新的Xcode。非常感謝。 – Nicholas