![](/img/trans.png)
[英]RealmSwiftObject is not managed by the Realm. Fetch objects with returned class
[英]Swift 3 - Object type 'RealmSwiftObject' is not managed by the Realm exception
我在我的iOS應用程序中使用Realm和Swift 3。 我有以下代碼
//Find all records for the day
func findForToday<T: Object>() -> [T] {
let predicate = NSPredicate(format: "date >= %@ and date <= %@", DateUtil.dayStart(), DateUtil.dayEnd())
return getRealm().objects(T.self).filter(predicate).map { $0 }
}
其中T
在這個上下文中是我的領域模型類,看起來像
class MyModel : Object {
dynamic var id = 0
dynamic var date = NSDate()
override class func primaryKey() -> String? {
return "id"
}
}
我在運行時說得到例外
Terminating app due to uncaught exception 'RLMException', reason:
'Object type 'RealmSwiftObject' is not managed by the Realm. If using a custom
`objectClasses` / `objectTypes` array in your configuration, add `RealmSwiftObject`
to the list of `objectClasses` / `objectTypes`.'
錯誤消息表明T
已被推斷為Object
而不是MyModel
,因此您需要調整調用站點以確保Swift選擇正確的類型。
嗨剛解決了這個問題。 在我的情況下,如果我稱你的功能“findForToday”
讓myArray = MyModel()。findForToday(),我得到了同樣的錯誤
但在我指定值類型錯誤丟失后。
let myArray:AnyRealmCollection <MyModel> = MyModel()。findForToday()
問題很舊但看起來你沒有將你的對象添加到Realm配置:
var realmOnDisc: Realm? {
let url = ...URL to your file
let objectTypes = [MyModel.self, SomeOtherModel.self]
let config = Realm.Configuration(fileURL: url,
deleteRealmIfMigrationNeeded:true,
objectTypes: objectTypes)
do {
let realm = try Realm(configuration: config)
return realm
} catch let error {
log.error("\(error)")
return nil
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.