我正在学习使用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;我以后可以在新方法中使用的整数。谢谢!
答案 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()
可能更好,因为显式创建新队列需要您稍后手动释放它们,这可能比此特定任务所需的工作量更多。 )
如果您需要任何额外的说明,请与我们联系。 :)