簡體   English   中英

RLMArray-從對象檢索數組

[英]RLMArray - retrieve Array from Object

我的模特:

轉化率

#import <Realm/Realm.h>
#import "ConvText.h"

@interface Conv : RLMObject

@property NSInteger c_id;
@property RLMArray<ConvText> *cts;

@end

轉換文本

#import <Realm/Realm.h>

@interface ConvText : RLMObject

@property NSInteger ct_id;
@property NSInteger time;

@end

RLM_ARRAY_TYPE(ConvText)

當我嘗試從Conv中提取ConvTexts時:

Conv *c = [Conv objectsWhere:@"c_id = %@",@(1)];
ConvText *ct = [c.cts arraySortedByProperty:@"time" ascending:NO][0]; <--

我收到此消息: “ RLMException”,原因:“只能在從RLMRealm檢索的RLMArray實例中調用此方法”

我也這樣嘗試:

RLMArray *cts = c.cts;
ConvText *ct = [cts arraySortedByProperty:@"time" ascending:NO][0];

之所以會出現此錯誤,是因為在后台查詢結果和關系是兩種不同類型的實體,即使它們是通過同一類(RLMArray)公開的。 在這種情況下,您要在Relationship上調用Query方法(arraySortedByProperty),該方法僅在Query結果上可用,盡管我們當然也應該考慮將其添加到Relationships中!

我們計划通過

  1. 將查詢結果和關系分為兩個單獨的類
  2. 允許在“關系”上調用(大多數)查詢方法。

同時,很遺憾,您必須將RLMArray復制到NSArray並進行排序:(我們知道它很爛,但是我們只是獲得了在C ++級別對關系進行重新排序的支持,因此我們將在下一版本中修復該問題。 (0.86)

我們的錯誤消息也應該更加明確-我們將盡快修復它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM