ios – 无法将表达式的类型’NSDictionary’转换为’StringLiteralConvertible’类型

ios – 无法将表达式的类型’NSDictionary’转换为’StringLiteralConvertible’类型,第1张

概述我在创建一个NSDictionary来获取我的CoreData模型中的对象时遇到了问题. let moc:NSManagedObjectContext = SwiftCoreDataHelper.managedObjectContext() let results:NSArray = SwiftCoreDataHelper.fetchEntities(NSStringFromClass(N 我在创建一个NSDictionary来获取我的CoreData模型中的对象时遇到了问题.
let moc:NSManagedobjectContext = SwiftCoreDataHelper.managedobjectContext()    let results:NSArray = SwiftCoreDataHelper.fetchEntitIEs(NsstringFromClass(NotificatIE),withPredicate: nil,managedobjectContext: moc)    for notificatIE in results    {        let singleNotificatIE:NotificatIE = notificatIE as NotificatIE        let notDict:NSDictionary = ["Title":notificatIE.Title,"fireDate":notificatIE.fireDate]    }

无法将表达式类型’NSDictionary’转换为’StringliteralConvertible’类型

问题出在词典中.

为什么我不能将String转换为获取对象?有解决方案吗

解决方法 我认为Title和fireDate是可选属性 – 如果是,那就是原因. NSDictionary无法存储nil值.

你应该:

>仅存储非零值(由您决定如何使用可选绑定显式解包)
>使用快速字典

如果这是你的NotificatIE类的样子:

class NotificatIE {    var Title: String?    var fireDate: NSDate?}

使用第一个选项,您应该只向字典添加非零值:

let notDict:NSDictionary = NSDictionary()if let Title = notificatIE.Title {    notDict.setValue(Title,forKey: "Title")}if let fireDate = notificatIE.fireDate {    notDict.setValue(fireDate,forKey: "fireDate")}

相反,如果您选择swift词典:

let notDict: [String:AnyObject?] = ["Title":notificatIE.Title,"fireDate": notificatIE.fireDate]
总结

以上是内存溢出为你收集整理的ios – 无法将表达式的类型’NSDictionary’转换为’StringLiteralConvertible’类型全部内容,希望文章能够帮你解决ios – 无法将表达式的类型’NSDictionary’转换为’StringLiteralConvertible’类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103930.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存