使用Realm Query中的整数值

时间:2016-01-03 01:14:15

标签: objective-c realm

我正在学习使用Realm,我根据其网站提供的示例代码提出了一个问题。如何查询然后使用我的领域中保存的整数特定值。以下是我的代码摘要:

@interface Dog : RLMObject
@property NSInteger age;
@property NSInteger id;
@end

@implementation Dog

+ (NSString *)primaryKey {
return @"id";
}

@implementation ViewController


- (void)viewDidLoad {

dogSelected = arc4random_uniform(10);

Dog *mydog = [[Dog alloc] init];
mydog.age = 10;
mydog.id = dogSelected;

RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[Dog createOrUpdateInRealm:realm withValue:mydog];
[realm commitWriteTransaction];


dispatch_async(dispatch_queue_create("background", 0), ^{RLMResults<Dog *> *r = [Dog objectsWhere:@"id == %d",dogSelected];

然后将RLMResults记录为:

    age = 10;
    id = 0;

我想要做的是隔离我刚刚排队的整数10并将其设置为新的&#34; ageQueried&#34;我以后可以在新方法中使用的整数。谢谢!

1 个答案:

答案 0 :(得分:2)

我希望我能在这里走上正确的道路,但从这些结果中获取Dog年龄的价值应该只是一个问题:

dispatch_async(dispatch_get_global_queue(0, 0), ^{
    RLMResults<Dog *> *r = [Dog objectsWhere:@"id == %d",dogSelected];
    Dog *dog = r.firstObject; //Get the first Dog object from the RLMResults set
    NSInteger ageQueried = dog.age;
});

(旁注:在这里使用dispatch_get_global_queue()可能更好,因为显式创建新队列需要您稍后手动释放它们,这可能比此特定任务所需的工作量更多。 )

如果您需要任何额外的说明,请与我们联系。 :)