我查询过与objectsWhere一个RLMArray,我也得到一个RLMResults,但我需要一个RLMArray的结果在我的代码这一点。转换RLMResults到RLMArray
private var data: RLMArray?
self.data = self.currentSubcategory!.datasheets // is a RLMArray
self.data = self.data!.objectsWhere("is_favourite = 1")
我查询过与objectsWhere一个RLMArray,我也得到一个RLMResults,但我需要一个RLMArray的结果在我的代码这一点。转换RLMResults到RLMArray
private var data: RLMArray?
self.data = self.currentSubcategory!.datasheets // is a RLMArray
self.data = self.data!.objectsWhere("is_favourite = 1")
RLMArray
已经被分成两类:RLMArray
和RLMResults
。RLMArray
现在只用于在RLMObject
类一对多的特性,而RLMResults
用于所有 查询和排序方法。这样做是为了反映两个 实际上具有相当不同的API(例如,RLMResults
不 具有addObject:
),并且当我们为查询添加 更改通知时,它们预计会进一步发散。这个迁移应该是在所有的编译器抱怨 有关地方与
RLMResults
更换RLMArray
一样简单。为了配合这一点,
arraySortedByProperty:ascending:
已更名 到sortedResultsUsingProperty:ascending:
,并且addObjectsFromArray:
已更名为addObjects:
反映的事实,你可以 传递任何枚举对象给它(如NSArray
,RLMArray
,或RLMResults
) 。
来源:http://realm.io/news/realm-cocoa-0.87.0/#rlmresults
希望这足够
let datasheets = self.currentSubcategory!.datasheets!.objectsWhere("is_favourite = 1")
let objects = Array(datasheets.generate())
self.data!.removeAllObjects()
self.data!.addObjects(objects)
创建结果的阵列是必需的,因为self.data!.removeAllObjects()
线也将明确datasheets
,因为RLMResults
是活的,更新您作出更改来源。
你需要从RLMResult
对象添加到RLMArray
...
@implementation RLMResults (RLMArrayConversion)
- (RLMArray *)toArray {
RLMArray * array = [[RLMArray alloc] initWithObjectClassName:self.objectClassName];
[array addObjects:self];
return array;
}
@end
对于未来的境界新手像我这样的,请更新这个博客帖子这些变化。 https://realm.io/news/tutorial-building-a-todo-app-with-realm/伟大的框架,但文档目前有点分散。 – 2015-05-02 18:17:03