簡介
realm神器作為如今移動(dòng)端最流行的數(shù)據(jù)庫浮声,是SQLite和CoreData的替代者‰咕保可讓你不再寫SQL語句,其簡單,好用
安裝
最好使用pods晴圾,簡單快速
pod 'Realm', '~> 2.2.0'
寫入數(shù)據(jù)
//person
DJPerson *personNew = [DJPerson new];
personNew.name = self.field1.text;
personNew.age = self.field2.text;
personNew.IDCard = [NSString stringWithFormat:@"%zd",self.IDCard.intValue];
personNew.dog = dog;
//save
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm addObject:personNew];
[realm commitWriteTransaction];
刪除數(shù)據(jù)
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
//remove ALL
[realm deleteAllObjects];
//remove one
[realm deleteObject:self.peron1];
[realm commitWriteTransaction];
修改數(shù)據(jù)
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm addOrUpdateObject:self.peron1];
[realm commitWriteTransaction];
查詢數(shù)據(jù)
RLMResults *persons = [DJPerson allObjects];
for (DJPerson *person in persons)
{
NSLog(@"%@",person);
}
注意點(diǎn)
1一對多時(shí)颂砸,子對象不能有主鍵
原因可能,子對象繼承了一個(gè)抽象的模型類死姚,而抽象類定義了一個(gè)主鍵
2 如果普通對象寫入時(shí)人乓,因沒主鍵報(bào)錯(cuò),單單加主鍵后都毒,仍會(huì)報(bào)錯(cuò)色罚,因?yàn)檫€要數(shù)據(jù)遷移一下
3RLMArray不支持block快速遍歷,forin快速遍歷账劲,否則會(huì)報(bào)錯(cuò)戳护,即使強(qiáng)轉(zhuǎn)為NSArray也沒用,
另外NSArray裝載RLMObject沒事