如何将NSManagedObject转换为NSDictionary

111*_*110 9 core-data nsdictionary nsmanagedobject ios swift

我试图转换NSManagedObjectNSDictionary这是我试过的:

var keys:NSArray = order?.entity.attributesByName.keys
var dict:NSDictionary = order?.dictionaryWithValuesForKeys(keys)
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

 LazyForwardCollection<MapCollectionView<Dictionary<NSObject,
 AnyObject>, NSObject>>? is not convertible to NSArray.
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

Mar*_*n R 21

keys字典的属性返回LazyForwardCollection必须转换为实数组的字符.

另一个问题是order显然是可选的,因此需要打开包装,例如使用可选的绑定.

if let theOrder = order {
    let keys = Array(theOrder.entity.attributesByName.keys)
    let dict = theOrder.dictionaryWithValuesForKeys(keys)
} else {
    // order is nil
}
Run Code Online (Sandbox Code Playgroud)