1.安裝
如果使用2.建立簡易模型,繼承於cocoapods
,示例語句如下
platform :ios, '8.0'
target 'simona_realm' do
pod 'realm', '~> 3.0.0-beta.3'
end
rlmobject
,儲存在資料庫的模型都需要繼承於rlmobject
person.h
#import rlm_array_type(person);
@inte***ce person : rlmobject
@property nsstring *personid;
@property bool status;
@property nsstring ****;
@end
person.m
#import "person.h"
@implementation person
// 設定主鍵,確保資料唯一性
+ (nsstring *)primarykey
// 設定屬性不為nil
+ (nsarray*)requiredproperties
// 設定忽略屬性
+ (nsarray*)ignoredproperties
// 設定預設值,對於不為null的屬性,預設給空
+ (nsdictionary *)defaultpropertyvalues ;
}//索引屬性,主要用於搜尋,根據性別進行搜尋
+ (nsarray*)indexedproperties
@end
關於rlmobject3.使用1.
realm
忽略了oc
的屬性特性(如nonatomic, atomic, strong,retain, weak,copy
等),所以在宣告屬性時可不寫,,這些特性會一直生效直到被寫入資料庫。2.
realm
支援以下的型別bool, nsinteger, long, double, cgfloat, nsstring, nsdate, nsdata
等3.定義了
rlm_array_type(person)
表示支援rlmarray
屬性,相當於允許rlmarray
屬性的使用,例如:在其他屬性裡可@property rlmarray*personal
如此使用,相當於繼承關係(本文暫不做贅述)
<1.>儲存
模擬儲存一萬條假資料
rlmrealm *realm = [rlmrealm defaultrealm];
[realm transactionwithblock:^
}];
這裡的<2.>刪除
[realm transactionwithblock:^];
等同於
[realm beginwritetransaction];
[realm commitwritetransaction];
每次開啟關閉資料庫時都應執行此操作
rlmrealm *realm = [rlmrealm defaultrealm];
[realm beginwritetransaction];
[realm deleteallobjects];
[realm commitwritetransaction];
<3.>查詢1.根據謂詞查詢
// rlmresults相當於查詢到的陣列
nspredicate *pred = [nspredicate predicatewithformat:@"status = %ld", no];
rlmresults *result = [person objectswithpredicate:pred];
person *per = result[indexpath.row];
2.根據條件查詢
rlmresults *result = [person objectswhere:@"status = 'no' and personid beginswith '張1'"];
person *per = result[indexpath.row];
3.查詢所有
rlmresults *persons = [person allobjects];
person *per = persons[indexpath.row];
<4.>更新1.更新資料裡某一屬性值
nspredicate *pred = [nspredicate predicatewithformat:@"personid = %@", strscan];
rlmresults *result = [person objectswithpredicate:pred];
if (result.count != 0)
2.建立乙個新值並更新資料庫,createorupdateinrealm:通過主鍵來更新插入
nspredicate *pred = [nspredicate predicatewithformat:@"personid = %@", strscan];
rlmresults *result = [person objectswithpredicate:pred];
if (result.count != 0) {
person *person = [[person alloc]init];
person.personid = @"simona1";
person.*** = @"woman";
person.status = no;
rlmrealm *r = [rlmrealm defaultrealm];
[r beginwritetransaction];
[person createorupdateinrealm:r withvalue:person];
[r commitwritetransaction];
iOS開發之Realm資料庫的簡單使用
1.安裝 如果使用cocoapods,示例語句如下 platform ios,8.0 target simona realm do pod realm 3.0.0 beta.3 end 2.建立簡易模型,繼承於rlmobject,儲存在資料庫的模型都需要繼承於rlmobjectperson.h im...
資料儲存之Realm資料庫
realm官網 realm速度 比 sqlite 和 core data 更好更快的資料庫支援 realm範圍 支援 ios swift 和 objective c 語言都支援 和 android realm我喜歡的原因 相對於fmdb等資料庫,realm讀取資料非常快,可構建大型應用,語言通俗易懂...
iOS 基於Realm資料庫的記賬軟體 前言
筆者在今年畢業的時候,為了應付學校的畢業設計,因此做了一款基於realm資料庫的記賬軟體。現在畢業後,稍微閒下來了,所以打算將整個專案的核心實現步驟記錄下來,供大家學習學習。當然,專案中肯定還存在著大大小小的bug,例如資料的溢位等細節處理。那麼先讓大家看看專案的效果圖吧 時間線布局 記錄介面 錢包...