【问题标题】:Using Integer Value from Realm Query使用领域查询中的整数值
【发布时间】:2016-01-03 01:14:14
【问题描述】:

我正在学习使用 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,并将其设置为一个新的“ageQueried”整数,以后可以在新方法中使用它。谢谢!

【问题讨论】:

  • 我不明白这个问题。您想在后续查询中使用找到的狗的年龄吗?
  • 我希望能够将找到的狗的年龄设置为新的 NSInteger 以在新方法中使用。在这种情况下,它是 10 的整数。但我不知道如何从查询中获取该值。例如,我想只查询年龄,如果符合我的条件,则将其加一。

标签: objective-c realm


【解决方案1】:

我希望我走在正确的道路上,但从这些结果中获取 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() 可能会更好,因为显式创建新队列还需要您稍后手动释放它们,这可能比此特定任务所需的工作量更大。)

如果您需要任何额外的说明,请告诉我。 :)

【讨论】:

  • 这正是我想要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多