NSKeyedArchiver 讓 iOS App 方便儲存 Objects 的資料
在 iOS App 開發裡面,我們要儲存使用者的購物清單,而這些購物清單透過使用者在瀏覽的時候,將它們一一記錄下來,當隨後使用者要查看即可方便顯示出來。
我們會規劃 Objects 來封裝我們的各種值,這些 Object 在規劃上研究深入就要由 Domain Model 來分析了。但是還好我們的 iOS App 不會到這麼複雜,只要基本的切分清楚在使用上方便即可。而我們是否有方便的方式將這些物件儲存起來呢?
NSKeyedArchiver 可以幫我們做到,透過 archive 即可將整串從 Root Object 開始將裡面所有的 Object 儲存起來。而下次要使用的時候只要透過 unarchive 取出即可還原。
NSKeyedArchiver 對於 iOS App 有做好 Object 規劃方面,儲存和讀取方面變的很方便,只要實作了此功能,我們的任何資料即可隨時存取,相當的方便。
我們會規劃 Objects 來封裝我們的各種值,這些 Object 在規劃上研究深入就要由 Domain Model 來分析了。但是還好我們的 iOS App 不會到這麼複雜,只要基本的切分清楚在使用上方便即可。而我們是否有方便的方式將這些物件儲存起來呢?
NSKeyedArchiver 可以幫我們做到,透過 archive 即可將整串從 Root Object 開始將裡面所有的 Object 儲存起來。而下次要使用的時候只要透過 unarchive 取出即可還原。
實作 NSCoding
我們有 PersonalShoppingList 這樣的 Object,而裡面有 Food 的 NSSet 和 FoodWithIngredient 的 NSDictionary,而要記得是在所有要存的 Object 都要實作 <NSCoding> 並且規劃寫 - (id)initWithCoder:(NSCoder *)aDecoder; 和 - (void)encodeWithCoder:(NSCoder *)aCoder。當然的,所有裡面會牽扯到的 Object 自己寫的都要這樣去實作。所以最後會看到自己要存的各種 Object 都會有寫好要存取的值。儲存
回到 NSKeyedArchiver 去將 PersonalShopping 指定給 archivedDataWithRookObject。當取得 NSData 後,一起將要儲存的 Path 規劃好之後,即可將它 writeToFile 寫進檔案。讀取
取出的時候是將 NSData 透過完整路經將檔案指定回來,再將 NSKeyedUnarchiver 的 unarchiveObjectWithData 還原回來,即可繼續使用了。NSKeyedArchiver 對於 iOS App 有做好 Object 規劃方面,儲存和讀取方面變的很方便,只要實作了此功能,我們的任何資料即可隨時存取,相當的方便。
Comments
Post a Comment