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

@interface PhotoRealm : RLMObject

@property NSNumber<RLMBool> *isVoted;

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

@end

在.m文件中,我实现了-defaultPropertyValues来像这样初始化:
+ (NSDictionary *)defaultPropertyValues {
    return @{@"isVoted" : @NO};
}

在某个地方,我需要通过提高bool值来做一些事情,但是结果并不理想。
然后,我编写以下调试代码:
   if (photoRealm.isVoted) {
        NSLog(@"isVoted");
    } else {
        NSLog(@"unVoted");
    }

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

记录如下:

[15:32:43]-[DTCollectionViewCell setupContentWithPhotoModel:] [306行]已投票
[15:32:43]-[DTCollectionViewCell setupContentWithPhotoModel:] [311行] 4646266992

同时,领域文件的快照如下:

ios - 如何在Realm-cocoa中正确使用RLMBool属性?-LMLPHP

我被困在这里。

最佳答案

我想我已经解决了。

实际上,isVoted NSNumber ,因此代码应如下所示:

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

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

10-08 07:48