2013年4月9日 星期二

Xcode : plist file 都支援那些資料格式















在上篇提到,plist file 可以儲存設定 / 資料,但其支援的的資料格式有那些?上圖為從 Apple developer 截圖下來的。一般而言,資料格式有 NSArray / NSDictionary / NSString / NSData / integer / float / Boolean。


  • NSString:儲存字串;
  • NSArray:objective-c 內的陣列型態,和C語言的陣列有些不同,在C語言宣告一個陣列為 "int index[10]",這個 index[] 僅能存放整數,依宣告不同的資料型態,而存放不同類型的資料;而NSArray的第一個不同是,僅能存放 objective-c 的 "id",所謂 "id" 即為物件。第二個不同是不能在放 int 資料,因為 int 資料不是物件,而需要將 int 資料轉為 NSNumber 物件來儲放。第三個不同是NSArray 僅能夠儲放 "id",只是物件都能儲放,可在第零位置上放置字串,第一放置NSData;並不限制要同一種資料型態。
  • NSDictionary:NSArray 這麼好用,在一個陣列中,可以放不同的資料。問題來了,不同位址放不同型態的資料,很難不搞混吧。我也不這麼作,風險太大了。用NSDictionary 吧!NSDictionary 用的不是位址來儲放資料,而是以key值來作索引,例如:以 "name" 來作姓名的索引,便可取出姓名的字串,或用 "age" 來作年齡的的索引,便可取年齡的整數值;
  • NSData:用來儲存 NSData物件,只要是能轉成 NSData的物件皆可;我曾將幾張小圖,分別用 NSData 物件存在 plist file,照樣可以用。
  • integer / float / Boolean:全部都是用 NSNumber 物件來儲存。寫入和讀出的指令要一致;千萬別寫入時用 numberWithBool 寫入boolean 值,而讀取時用 intValue,讀出來的卻是整數值,那就糗了。


ref: Apple developer

沒有留言:

張貼留言