我正在开发一个需要从JSON文件进行同步的应用程序。这些文件在调用端点服务后创建。请求具有Realm的ClassName的RLMObjects
因此,每个文件都使用ClassName命名并包含此类型的所有对象。所以我想要做的是打开每个文件并保存/更新/删除我领域数据库中的所有对象。
我一时丑陋的解决方案是迭代的境界架构,并使用一个开关来匹配实体类名:
let realm = RLMRealm.defaultRealm()
var schema = realm.schema.objectSchema as [RLMObjectSchema]
for clazz in schema {
switch(clazz.className){
case Class1.className():
var sortedArray = Class1.allObjects().sortedResultsUsingProperty("updatedAt", ascending: false)
if(sortedArray.count>0){
date = sortedArray.firstObject().valueForKey("updatedAt") as Int
}
break
case Class2.className():
var sortedArray = Class2.allObjects().sortedResultsUsingProperty("updatedAt", ascending: false)
if(sortedArray.count>0){
date = sortedArray.firstObject().valueForKey("updatedAt") as Int
}
break
}
}
此代码是为了获得最后的更新日期为一个实体类型为同步的目的,但我需要它的其他东西,所以这适用于几个类,但我有40个类...
所以我想知道,如果有一种方法来请求只有类名的Realm DB?来自RLMRealm的东西(例如:RLMRealm.defaultRealm().allObjectsWithClassName("Class1")
)或创建一个带有className的RLMObject以访问请求函数。
感谢您的回答,但我无法从swift代码访问它。此外,如果它不受支持,我会被卡住。 – Pintouch 2015-02-10 13:48:23