如何在realm-cocoa中正确使用RLMBool属性?

How to use RLMBool property correctly in realm-cocoa?

在 RLMObject 的子类中声明了一个 Bool 属性,如下所示:

@interface PhotoRealm : RLMObject

@property NSNumber<RLMBool> *isVoted;

- (id)initWithMantleModel:(PhotoModel *)photoModel;

@end

在 .m 文件中,我实现了 -defaultPropertyValues 来初始化这样的:

+ (NSDictionary *)defaultPropertyValues {
    return @{@"isVoted" : @NO};
}

在某个地方,我需要通过打野布尔值来做一些事情,但结果不是预期的。 然后,我编写了以下调试代码:

   if (photoRealm.isVoted) {
        NSLog(@"isVoted");
    } else {
        NSLog(@"unVoted");
    }

    NSLog(@"%ld", (NSInteger)photoRealm.isVoted);

日志如下:

[15:32:43] -[DTCollectionViewCell setupContentWithPhotoModel:] [306 line] isVoted [15:32:43] -[DTCollectionViewCell setupContentWithPhotoModel:] [311 line] 4646266992

同时,realm文件快照如下:

我被困在这里了。

我想我已经解决了。

实际上,isVotedNSNumber,所以代码应该是这样的:

if ([photo.isVoted integerValue]) {
        NSLog(@"isVoted");
    } else {
        NSLog(@"unVoted");
    }

    NSLog(@"%ld", [photo.isVoted integerValue]); 

您需要将其用作。

if ([photo.isVoted boolValue]) {
    NSLog(@"isVoted");
} else {
    NSLog(@"unVoted");
}