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’类型所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)