iOS的本地化資料儲存

2021-06-25 19:57:25 字數 1589 閱讀 7759

l

xml屬性列表(

plist

)歸檔l

preference(

偏好設定)l

nskeyedarchiver歸檔l

sqlite3資料庫

lcore data l

realm

一 ,xml

屬性列表(

plist

)歸檔1,獲取沙盒根路徑

nsstring *home = nshomedirectory();

2,獲取document路徑

3,寫入plist檔案

// 拼接檔案的全路徑

// 寫入

[data writetofile:filepath atomically:yes];

二 ,preference(

偏好設定

)本質還是plist屬性列表的方式進行儲存

不用關心資料夾和檔名

只能儲存到乙個檔案中(不能存放大批量資料)

//當你想簡簡單單存一些鍵值對,又不想操縱某個檔案和資料夾時,用這種方式

1,直接訪問軟體的偏好設定(library/preferences)

nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults];

2,儲存資料

[defaults setobject:(id) forkey:(nsstring *)];

3,立刻同步

[defaults synchronize];

4,讀取

obj = [defaults objectforkey:@"account"];

三,歸檔普通物件

能將任何遵守了nscoding協議的物件塞進檔案中

// 建立乙個自定義的資料型別物件p

myobject *p = [[myobject alloc] init];

p.name = @"jack";

p.age = 10;

p.height = 1.55;

// 路徑

1,歸檔

[nskeyedarchiver archiverootobject:p tofile:path];

將物件歸檔的時候會呼叫(將物件寫入檔案之前會呼叫)

// 在這個方法說清楚:

// 1,那些屬性需要儲存

// 2,怎樣儲存這些屬性

- (void)encodewithcoder:(nscoder *)encoder

2,讀檔(反歸檔)

myobject *p = [nskeyedunarchiver unarchiveobjectwithfile:path];

當從檔案中解析物件的時會呼叫

// 在這個方法說清楚:

// 1,那些屬性需要解析(讀取)

// 2,怎樣解析(讀取)這些屬性

- (void)encodewithcoder:(nscoder *)encoder

四,sqlite3

適用於儲存大批量資料

五,core data

ios 5.0出現

效率底下(封裝了sqlite3)

六,realm

iOS 語言本地化

建立localizable.strings檔案 localizable.strings新增支援語言 編寫兩個檔案中的字段 通過key value方式 通過 nslocalizedstring 相應字段 nil 獲取本地化之後的檔案。版的本地化語言實現 storyboard版的本地化語言實現 得到當前...

資料本地化儲存 如何選擇

巨集定義,直接根據檔名稱,拼接檔案的絕對路徑,pragma mark 寫入檔案 ibaction writtofile id sender pragma mark 讀取內容,讀取字串的內容 ibaction readfromfile id sender pragma mark 寫入檔案 ibacti...

本地化資料

本地化資料是乙個專案中比較重要的一部分。今天自己來整理下資料本地化的一些知識,方便以後使用 本地化資料的基本方法 1 plist檔案 屬性列表 2 preference 偏好設定 3 nskeyedarchiver 歸檔 4 sqlite 5 coredata 一 沙盒 1 沙盒的目錄結構 docu...