[iOS] 在App間分享資料 (Share Data Between Apps)
過去App的資料是被保護在沙盒(Sandbox)之中,因此無法讓其它App來存取。現在Apple設計一個共享區域,在此區域可以讓不同的App來存取,只是這些App必須是同一個開發者呢!
在專案中的Capabilities中打開App Groups,接著創立一個App Groups,我這裡是設定group.happy.share,程式碼中會用到喔~
過去App的資料是被保護在沙盒(Sandbox)之中,因此無法讓其它App來存取。現在Apple設計一個共享區域,在此區域可以讓不同的App來存取,只是這些App必須是同一個開發者呢!
在專案中的Capabilities中打開App Groups,接著創立一個App Groups,我這裡是設定group.happy.share,程式碼中會用到喔~
已經開發iOS滿兩年,對於專案中Info.plist常用選項,還是有許多不明白的項目,平常也沒找到相關說明,好在偶然發現前人整理好的經驗談,描述得讓我輕易明白其用途,往後開發App就可以考慮嘗試看看~
寫iOS時常需要讀取檔案,我們不希望把資料key進程式碼,因為會擾亂編程觀感,而且不易修改和維護,於是將CSV轉為Plist會是個好方法! 稍微來瞭解一下CSV和Plist是什麼格式吧~
什麼是plist?全名為property list,在所有的資料儲存方法中,最容易莫過於Property List了,陣列、字典、字串和資料都可以存成XML格式的Property List,事實上,NSUserDefaults就是一個Property List。
不過並非所有的資料都適合用它來儲存,像是過多的資料或是自己設計的一些複雜物件都不太適合,因為Property List會一次將整個文件內容讀取到記憶體中,無論效率上或是空間上都不是很理想。
使用plist存取檔案有什麼特色?
| 資料型態 | XML 元素 | Foundation framework 類別 |
| array | <array> | NSArray |
| dictionary | <dict> | NSDictionary |
| string | <string> | NSString |
| data | <data> | NSData |
| date | <date> | NSDate |
| number – integer | <integer> | NSNumber(intValue) |
| number – floating point | <real> | NSNumber(intFloat) |
| Boolean | <true/>或<false/> | NSNumber(boolValue) |
HappyMan・迴響