iOS之物件儲存

2021-06-27 02:10:33 字數 1699 閱讀 4305

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 ...