2016-10-10 27 views
2

我在我的iOS應用中使用Realm與Swift 3。我有以下代碼Swift 3 - 對象類型'RealmSwiftObject'不受Realm異常管理

//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`.' 

回答

0

錯誤消息表明T已被推斷爲Object而不是MyModel,因此您需要調整呼叫站點以確保Swift選擇正確的類型。

+0

你能幫我一個代碼片段? –

+0

@JaseemAbbas你如何調用'findForToday()'?你可以明確指定'MyModel',比如'lettodays:[MyModel] = findForToday()'或'lettodays = findForToday()[MyModel] – Dmitry

0

你剛剛解決了這個問題。 就我而言,如果我打電話給你的FUNC「findForToday」像

讓myArray的=爲MyModel()。findForToday() 和我有同樣的錯誤

但我指定後的值類型錯誤而丟失。

讓myArray的:AnyRealmCollection <爲MyModel> =爲MyModel()findForToday()