我試圖我NSManagedObject轉換成字典這樣我就可以使用序列化的JSON。無法投類型的值「NSKnownKeysDictionary1」()爲「」()
func fetchRecord() -> [Record] {
let fetchRequest = NSFetchRequest<Record>(entityName:"Record")
let context = PersistenceService.context
fetchRequest.resultType = .dictionaryResultType
do {
records = try context.fetch(Record.fetchRequest())
} catch {
print("Error fetching data from CoreData")
}
print(records)
return records
}
我在這個問題已loked:How to convert NSManagedObject to NSDictionary但他們的方法似乎我的非常不同。我也嘗試了這個問題中提供的方法:CoreData object to JSON in Swift 3。但是我收到此錯誤
無法投類型的值「NSKnownKeysDictionary1」(0x108fbcaf8)爲「iOSTest01.Record」(0x1081cd690)$
,我似乎無法找到解決辦法。
錯誤已在此處提及:Core Data: Could not cast value of type 'MyType_MyType_2' to MyType但沒有任何方法正在解決我的問題。任何人都可以爲我提供Swift解決方案嗎?
更新
爲了幫助在註釋下我已經添加了以下內容:
var record: Record!
var records = [Record]()
記錄+ CoreDataClass:
public class Record: NSManagedObject {
}
記錄+ CoreDataProperties:
extension Record {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Record> {
return NSFetchRequest<Record>(entityName: "Record")
}
@NSManaged public var name: String?
}
這就是records
的定義。
「記錄」的定義在哪裏? - 通過'resultType = .dictionaryResultType',獲取請求返回一個* dictionaries數組,*與您的返回類型'[Record]'不兼容。 –
請參閱我的問題更新。 – Chace
你想要一個Record對象或一個字典數組的數組嗎? –