ios中對於資料的儲存通常使用sqlite或者coredata,也有部分使用檔案儲存的方式。ios中的nsarray、nsstring、nsdictionary、nsdata等常規的資料物件都可以使用writetofile:
atomically:方法(注:這裡nsarray中的物件必須是些ios中的常規物件,如果是自定義的且有巢狀物件的,呼叫該方法會失敗),因為實際操作中自定義物件的多樣化,如果要實現檔案儲存通常要進行資料轉換操作,然後再使用writetofile:
atomically:方法去寫檔案,讀取的時候再按物件儲存後的方式解析。為了實現通用性,本文使用
中的方法對物件動態儲存及解析。
以如下物件為例:
1、物件一巢狀imageinfo物件
@inte***ce hotrecommend : nsobject
@property(nonatomic,retain) nsstring *starttime;
@property(nonatomic,retain) nsstring *endtime;
@property(nonatomic,retain) imageinfo *img;
2、物件二巢狀cdcpoint物件
@inte***ce imageinfo : nsobject
@property (retain) nsstring *id;
@property (retain) nsstring *name;
@property (retain) nsstring *url;
@property (retain) nsnumber *width;
@property (retain) nsnumber *height;
@property (retain) nsstring *sourcetype;
@property(retain) cdcpoint *point;
3、物件三為常用資料型別
@inte***ce cdcpoint : nsobject
@property
(nonatomic
,assign
) float
pointx;
@property(nonatomic,assign) float pointy;
對於上述包含多個
hotrecommend
物件的陣列儲存,呼叫writetofile:
atomically:就無法實現目的,具體思路可以將hotrecommend轉化為字典物件,或json字串,最後再呼叫writetofile:
atomically:去儲存
方法如下(該方法可能未考慮到所有的物件轉換情況,具體情況讀者可以根據思路自行新增):
//物件轉換為字典,呼叫該方法將自定義的物件轉換為字典物件,(思路:通過遍歷物件中的屬性及其值進行轉換)
+ (nsdictionary *)objtonsdictionary:(id)object
elseelse
}else }
return dicret;
} }
//字典轉化為制定名稱的物件,classname為你要轉換成的物件名稱,(請事先定義好類物件)
+(id)dictoobj:(nsdictionary *)dic withclassname:(nsstring *)classname;
else
}return retobj; }
iOS開發之APP USER物件儲存歸檔
void forgetpsdaction completion null 這個方法啊,頁面保證釋放 頁面迴圈跳轉,若有頁面不進行釋放的話則會導致迴圈引用 2.就忘記密碼和註冊頁面來看也就是相互之間可以跳轉到登入頁面去。3.一旦登入成功,這時候後台伺服器回返回乙個使用者的所有資訊的json或者其他型別...
iOS資料儲存之NSUserDefault
建立乙個user defaults方法有多個,最簡單得快速建立方法 nsuserdefaults mydefaults nsuserdefaults standarduserdefaults 新增資料到 userdefaults mydefaults setobject namefield.text...
IOS資料儲存之 Core Data
前言 構成 1 nsmanagedobjectcontext 被管理的資料上下文 操作實際內容 操作持久層 作用 插入資料,查詢資料,刪除資料 2 nsmanagedobjectmodel 被管理的資料模型 資料庫所有 或資料結構,包含各實體的定義資訊 作用 新增實體的屬性,建立屬性之間的關係 3 ...