2009-06-18 108 views
1

有沒有人在保存應用程序首選項(在應用程序中,而不是在設置應用程序中)有涉及使用相機拍攝的圖像的任何經驗?將圖像保存到用戶偏好

這些設置包括NSStrings,UIImage,BOOL等。UIImage是用相機拍攝的圖片。

我可以將這些都存儲在一個NSMutableArray,然後就做這樣的事情:

[array writeToFile:[self dataFilePath] atomically:YES]; 

數組可以保存這樣的各種對象的? (並且BOOL並非嚴格意義上的對象)

回答

3

您可以保存使用的NSKeyedArchiver這個數組,避免了財產清單:

[NSKeyedArchiver archiveRootObject:array toFile:[self dataFilePath]]; 
+0

感謝。我會嘗試你的兩個建議,看看哪些作品。使用NSKeyedArchiver技術,我將如何加載值?我可以分配/初始化一個數組,然後:[array unarchiveObjectWithFile:[self dataFilePath]]; ? – cannyboy 2009-06-18 14:35:23

+0

NSArray * array = [NSKeyedUnarchiver unarchiveObjectWithFile:pathToFile]; – 2009-06-18 15:06:27

+0

我最終使用了'UIImage> NSData'技術。使用NSKeyedArchiver技術會有優勢嗎?也許從UIImage轉換到NSData反之亦然需要更長的時間。 – cannyboy 2009-06-18 15:26:45

1

您只能使用writeToFile:atomically:來編寫property lists。這意味着,數組(和可能的子容器)只能包含NSArray,NSDictionary,NSString,NSData,NSDate和NSNumber類型的對象。您必須將圖像轉換爲NSData,才能在屬性列表中使用它。