我的子类RLMObject看起来像这样:
@interface ImageRealm : RLMObject
@property NSString *httpsURL;
@property NSNumber<RLMInt> *size;
@end
RLM_ARRAY_TYPE(ImageRealm)
@interface PhotoRealm : RLMObject
@property NSNumber<RLMInt> *photoID;
@property RLMArray<ImageRealm *><ImageRealm> *differentSizeImages;
- (id)initWithMantleModel:(PhotoModel *)photoModel;
@end
Run Code Online (Sandbox Code Playgroud)
我想过滤数组以检索特定PhotoRealm的differentSizeImages数组ImageRealm.我尝试使用以下代码:
PhotoRealm *photo = self.array[indexPath.row];
NSString *filter = @"size == 4";
ImageRealm *pecificImage = [[photo.differentSizeImages objectsWhere:filter] firstObject];
Run Code Online (Sandbox Code Playgroud)
在哪里self.array初始化如下:
self.array = [PhotoRealm allObjects];
Run Code Online (Sandbox Code Playgroud)
代码抛出异常:
2017-03-24 03:33:36.891 project_name [46277:3636358]***由于未捕获的异常终止应用程序'无效的谓词表达式',原因:'谓词表达式必须比较一个键路径和另一个键路径或一个常量值'
更新:
在我添加size属性之前,我能够执行以下操作(因为我只有一个图像大小):
ImageRealm *image = [photo.differentSizeImages objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
但是现在我已经添加了size我需要过滤数组的属性来选择正确的大小图像.
有关Realm文件中数据的概念,请参阅以下图像:
[![differentSizeImgae [2]](https://i.stack.imgur.com/K1XBN.png)
而且,我注意到 …