ios - 如何将 NSManagedObject 转换为 NSDictionary

标签 ios swift core-data nsdictionary nsmanagedobject

我正在尝试将 NSManagedObject 转换为 NSDictionary 这是我尝试过的:

var keys:NSArray = order?.entity.attributesByName.keys
var dict:NSDictionary = order?.dictionaryWithValuesForKeys(keys)

但是我得到错误:

 LazyForwardCollection<MapCollectionView<Dictionary<NSObject,
 AnyObject>, NSObject>>? is not convertible to NSArray.

我在这里做错了什么?

最佳答案

字典的 keys 属性返回一个 LazyForwardCollection,它必须被转换成一个真正的数组。

另一个问题是 order 显然是可选的,所以它需要 被解开,例如具有可选的绑定(bind)。

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

关于ios - 如何将 NSManagedObject 转换为 NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29667202/

相关文章:

ios - 如何根据 UITableView 中的文本增加 UILabel 高度?

ios - 带约束的 UITableView 的动态高度

ios - swift 4 : UISearchBar and NavigationBar

iphone - 数据模型中或 NSManagedObject 的自定义子类中定义的 transient 属性之间有区别吗?

ios - NSValueTranformer 用于加密数据

ios - Crashlytics 和 Google Analytics 以及缺失的 dSYM

ios - SwiftUI:VStack 中的 Text + TextField 结果为 "Unable to simultaneously satisfy constraints."

ios - UIScrollView 不起作用(无法滚动)

ios - iOS 中自定义对话框的动态高度

objective-c - 使用 NSPredicate 的位置之间的距离