Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios RLMArray-从对象检索数组_Ios_Objective C_Realm - Fatal编程技术网

Ios RLMArray-从对象检索数组

Ios RLMArray-从对象检索数组,ios,objective-c,realm,Ios,Objective C,Realm,我的模型: Conv.h #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 NSIntege

我的模型:

Conv.h

#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)

出现此错误是因为幕后查询结果和关系是两种不同类型的实体,即使它们是通过同一类(RLMArray)公开的。在这种情况下,您正在调用一个关系上的查询方法(AlaySoReTyByType),并且该方法仅在查询结果上可用,当然我们也应该考虑将其添加到关系中。p> 我们计划通过以下方式解决此问题:

  • 在两个单独的类中分离查询结果和关系
  • 允许对关系调用(大多数)查询方法
  • 同时,不幸的是,你必须将RLMARRE深度复制到NSART中并排序:(我们知道它很糟糕,但是我们刚刚得到支持,在C++级别重新排序关系,这样我们就可以在下一个版本(0.86)

    中固定它。
    我们的错误消息也应该更加明确-我们会尽快修复它。

    您会遇到此错误,因为后台查询结果和关系是两种不同类型的实体,即使它们通过同一类(RLMArray)公开。在这种情况下,您调用的是查询方法(arraySortedByProperty)在关系上,该方法只在查询结果上可用,当然我们也应该考虑将其添加到关系中!

    我们计划通过以下方式解决此问题:

  • 在两个单独的类中分离查询结果和关系
  • 允许对关系调用(大多数)查询方法
  • 同时,不幸的是,你必须将RLMARRE深度复制到NSART中并排序:(我们知道它很糟糕,但是我们刚刚得到支持,在C++级别重新排序关系,这样我们就可以在下一个版本(0.86)

    中固定它。
    我们的错误消息也应该更加明确-我们会尽快修复它。

    感谢您的精彩解释。另外,realm易于使用,但数据库功能强大。祝您好运!刚刚尝试调用“objectsWhere”在关系上,并以相同的异常结束。这将是很好的工作。我遇到了与zvonicek相同的问题,只是我尝试使用ObjectsWithPredicate:我们本周实际上正在进行此工作。我们的主分支中已经承诺了一些关于+更多正在进行中的工作分支的事情。我们为或者混乱!Sinde 2014-10-21他们已经将
    RLMArray
    分为两个类,分别关注不同的问题。这是0.87.0版本,请查看他们的版本。感谢您的精彩解释。另外,realm易于使用,但强大的DB。祝您好运!只是尝试调用“objectsWhere”在关系上,并以相同的异常结束。这将是很好的工作。我遇到了与zvonicek相同的问题,只是我尝试使用ObjectsWithPredicate:我们本周实际上正在进行此工作。我们的主分支中已经承诺了一些关于+更多正在进行中的工作分支的事情。我们为或者混乱!Sinde 2014-10-21他们已经将
    RLMArray
    分为两个类,分别关注不同的问题。这是0.87.0版本,请查看他们的版本。
    Conv *c = [Conv objectsWhere:@"c_id = %@",@(1)];
    ConvText *ct = [c.cts arraySortedByProperty:@"time" ascending:NO][0]; <--
    
    RLMArray *cts = c.cts;
    ConvText *ct = [cts arraySortedByProperty:@"time" ascending:NO][0];