这是我的附件模型。
@interface Attachment : RLMObject
@property BOOL isOfflineAvailable;
@property BOOL isStarred;
在我的类别中,我设置了链接到附件。
@property (readonly) RLMLinkingObjects *relatedAttachments;
+ (NSDictionary *)linkingObjectsProperties {
return @{
@"relatedAttachments": [RLMPropertyDescriptor descriptorWithClass:Attachment.class propertyName:@"category"],
};
}
然后,我试图查询relatedAttachments并仅在isOfflineAvailable为true时才进行查询。
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY relatedAttachments.isOfflineAvailable == YES"];
self.categories = [[Category objectsWithPredicate:pred] sortedResultsUsingProperty:@"id" ascending:YES];
问题是它是空的(虽然有数据)。我该怎么办?如果它不是链接对象而只是RLMArray,那没关系。
答案 0 :(得分:1)
RLMLinkingObjects
表示一个集合,就像一个数组,而不是一个对象。因此,尝试直接在relatedAttachments
上调用谓词将不起作用,因为作为数组,它不会具有isOfflineAvailable
属性。
相反,您可以使用SUBQUERY
的{{1}}语法来查询符合该条件的NSPredicate
内的任何对象:
relatedAttachments