在開發應用程式的時候,當然需要經常的實用資料庫進行資料的儲存了,在移動裝置上,我們可以使用檔案,資料庫等方式去儲存,為了能夠讓使用者無法使用其他的程式去修改,我這裡認為使用資料庫的方式是乙個很好的方式。在iphone上面,我們可以使用sqlite進行資料的持久化。另外值得一提的是firefox是使用資料庫的方式儲存的,同樣也是sqlite。
在iphone開發重,我們需要首先新增乙個sqlite的庫,xcode本身就支援的,我們在左邊的frameworks裡面選擇add,然後選擇existing frameworks,在彈出視窗中選擇sqlite的庫libsqlite3.0.dylib。
新增之後,我們就可以使用sqlite在iphone中進行資料的儲存,查詢,刪除等操作了。
現在我們可以寫乙個sqlite的helper檔案,方便我們在其他的**中使用,標頭檔案(sqlitehelper.h)如下。
#import
<
foundation
/ foundation.h
>
#import 「sqlite3.h「
#define kfilename @」mydatabase.sql」@inte***ce sqlitehelper : nsobject
//建立表
- (bool)createtable;
//插入資料
- (bool)insertmaintable:(nsstring*) username insertpassword:(nsstring*) password;
//查詢表
- (bool)checkifhasuser;
@end
我們的**檔案如下。
#import
「 sqlitehelper.h
「
@implementation sqlitehelper
nslog(@」database file path is %@「,paths);
if(filefinded)
}else
}char *errormsg;
nsstring *createsql = @」create table if not exists fields (userid integer primary key,username text,password text)「;
if(sqlite3_exec(database,[createsql utf8string],null,null,&errormsg)!=sqlite_ok)
return yes;
}- (bool)insertmaintable:(nsstring*) username insertpassword:(nsstring*) password
nsstring *insertdata = [[nsstring alloc] initwithformat:@」insert or replace into fields (userid,username,password) values (%d,』%@』,'%@』)「,0,username,password];
if(sqlite3_exec(database,[insertdata utf8string],null,null,&errormsg)!=sqlite_ok)
return yes;
}- (bool)checkifhasuser
//sqlite3_finalize(statement);
if(sqlite3_step(statement) == sqlite_row)
}nslog(@」no user「);
return no;
}@end
其中checkifhasuser是檢查資料,這個方法中我注釋的是得到資料,因為我們這裡只是check,所以不需要得到資料,直接看是否存在資料即可。上面的**雖然沒有過多的注釋,但是**本身已經很簡單了,上下文也非常清楚,所以我就不寫過多的注釋了。
iOS開發 資料持久化 歸檔
在ios開發過程中,很多時候都需要進行一些資料的儲存和讀入,在資料量不大的情況下,使用plist儲存資料是一種很方便的方式,但是plist只能允許儲存一些系統自帶的資料型別,如果需要儲存自定義的資料型別,plist是是用不了的,但是可以使用另外一種資料持久化的方法 物件歸檔。nscoding協議 要...
資料持久化
資料持久化就是將記憶體中的資料模型轉換為儲存模型,以及將儲存模型轉換為記憶體中的資料模型的統稱.資料模型可以是任何資料結構或物件模型,儲存模型可以是關係模型 xml 二進位製流等。cmp和hibernate只是物件模型到關係模型之間轉換的不同實現。只不過物件模型和關係模型應用廣泛,所以就會誤認為資料...
資料持久化
首先是cocos2d x自己封閉的ccuserdefault跨平台的檔案儲存類,它是用的xml格式,具體操作非常類似於應用開發的ini檔案,可操作性不是很強,如果訪問比較複雜的資料,那就得自己動手去解析乙個字串,下面是示例 基本一看就懂 void userdefaulttest dotest els...