ios realm 文件_iOS Realm数据库使用

Realm 是 SQLite 和 Core Data 的替代者,得益于其零拷贝的设计,Realm 比任何 ORM 都要快很多。

Objective‑C版本的 Realm 能够让您以一种安全、耐用以及迅捷的方式来高效地编写应用的数据模型层,如下例所示:

Dog.h

@interface Dog : RLMObject

@property NSString *name;

@property NSData *picture;

@property NSInteger age;

@end

@implementation Dog

Dog.m

@implementation Dog

@end

RLM_ARRAY_TYPE(Dog)

Person.h

@interface Person : RLMObject

@property NSString *name;

@property RLMArray *dogs;

@end

Person.m

@implementation Person

@end

使用方法

// 使用的方法和常规 Objective‑C 对象的使用方法类似

Dog *mydog = [[Dog alloc] init];

mydog.name = @"大黄";

mydog.age = 1;

mydog.picture = nil; // 属性的值可以为空

NSLog(@"狗狗的名字: %@", mydog.name);

// 检索 Realm 数据库,找到小于 2 岁 的所有狗狗

RLMResults *puppies = [Dog objectsWhere:@"age < 2"];

puppies.count; // => 0 因为目前还没有任何狗狗被添加到了 Realm 数据库中

// 数据持久化操作十分简单

RLMRealm *realm = [RLMRealm defaultRealm];

[realm transactionWithBlock:^{

[realm addObject:mydog];

}];

// 检索结果会实时更新

puppies.count; // => 1

// 可以在任何一个线程中执行检索操作

dispatch_async(dispatch_queue_create("background", 0), ^{

Dog *theDog = [[Dog objectsWhere:@"age == 1"] firstObject];

RLMRealm *realm = [RLMRealm defaultRealm];

[realm beginWriteTransaction];

theDog.age = 3;

[realm commitWriteTransaction];

});

如果您的应用正在使用 Core Data 并打算换用 Realm 的话,我们最近发布了一篇关于如何执行转换的文章,点击此处查看!

从这里开始

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值