Vic*_*tor 0 objective-c realm ios
我的模特:
Conv.h
#import <Realm/Realm.h>
#import "ConvText.h"
@interface Conv : RLMObject
@property NSInteger c_id;
@property RLMArray<ConvText> *cts;
@end
Run Code Online (Sandbox Code Playgroud)
ConvText.h
#import <Realm/Realm.h>
@interface ConvText : RLMObject
@property NSInteger ct_id;
@property NSInteger time;
@end
RLM_ARRAY_TYPE(ConvText)
Run Code Online (Sandbox Code Playgroud)
当我试图从Conv中提取ConvTexts时:
Conv *c = [Conv objectsWhere:@"c_id = %@",@(1)];
ConvText *ct = [c.cts arraySortedByProperty:@"time" ascending:NO][0]; <--
Run Code Online (Sandbox Code Playgroud)
我收到此消息:'RLMException',原因:'此方法只能在从RLMRealm检索到的RLMArray实例中调用'
我也尝试这样:
RLMArray *cts = c.cts;
ConvText *ct = [cts arraySortedByProperty:@"time" ascending:NO][0];
Run Code Online (Sandbox Code Playgroud)
您收到此错误是因为在幕后查询结果和关系是两种不同类型的实体,即使它们是通过同一个类(RLMArray)公开的.在这种情况下,您在关系上调用Query方法(arraySortedByProperty),并且该方法仅在Query结果上可用,但我们确定应该考虑将它添加到Relationships中!
我们计划解决这个问题
与此同时,你不幸的是必须将RLMArray深度复制到NSArray并对其进行排序:(我们知道它很糟糕,但我们只是支持在C++级别重新排序关系,所以我们将在下一个版本中修复它(0.86)
我们的错误信息也应该更明确 - 我们会尽快修复它.
| 归档时间: |
|
| 查看次数: |
2139 次 |
| 最近记录: |