ios – 在解析swift中的Json时无法将’NSNull’类型的值转换为’NSString’

ios – 在解析swift中的Json时无法将’NSNull’类型的值转换为’NSString’,第1张

概述我有以下课程 class BannerResponse : NSObject{ let URL = "Url"; let CONTACT_NO = "ContactNo"; let IMAGE = "Image"; let BIG_IMAGE = "BigImage" 我有以下课程
class BannerResponse : NSObject{    let  URL                = "Url";    let  CONTACT_NO         = "ContactNo";    let  IMAGE              = "Image";    let  BIG_IMAGE          = "BigImage";    let  ID                 = "ID";    let  Title              = "Title";    let  NO_VIEW            = "NoVIEw";    let  START_DATE         = "StartDate";    let  END_DATE           = "EndDate";    var url:String;    var contactNo:String;    var image:String;    var bigImage:String;    var Title:String;    var ID:Int;    var noVIEw:Int;    var startDate:String;    var endDate:String;    init(data : NSDictionary){        url         = data[URL] as! String;        contactNo   = data[CONTACT_NO] as! String;        image       = data[IMAGE] as! String;        bigImage    = data[BIG_IMAGE] as! String;        Title       = data[Title] as! String;        ID          = data[ID] as! Int;        noVIEw      = data[NO_VIEW] as! Int;        startDate   = data[START_DATE] as! String;        endDate     = data[END_DATE] as! String;    }}

当我运行代码时,我得到以下错误

Could not cast value of type 'NSNull' (0x10a85f378) to 'Nsstring' (0x109eccb20).

编辑

do {                            if let Json = try NSJsONSerialization.JsONObjectWithData(data!,options: NSJsONReadingOptions.MutableContainers) as? NSDictionary{                                onSuccess(BannerResponse(data: Json))                            }                        } catch {                            onFail()                        }
解决方法 你的一个数据[SOME_KEY]的类型是NSNull而不是String,因为你正在使用强制转换为String!该应用程序崩溃.

你可以做以下两件事之一:

>将BannerResponse类的变量更改为可选.用吗?代替 !在init方法中设置值时.像这样:

`

var Title: String?init(data: NSDictionary) {    self.Title = data[Title] as? String}

要么

>使用?代替 !在init方法中设置值但在dict [SOME_KEY]为nil或不是预期类型时设置默认值.这看起来像这样:

`

if let Title = data[Title] as? String {    self.Title = Title}else{    self.Title = "default Title"}// Shorthand would be: // self.Title = data[Title] as? String ?? "default Title"

我想第三件事是确保服务器永远不会发送空值.但这是不切实际的,因为从来没有这样的事情.您应该编写客户端代码,以假设JsON中的每个值都可以为null或意外类型.

总结

以上是内存溢出为你收集整理的ios – 在解析swift中的Json时无法将’NSNull’类型的值转换为’NSString’全部内容,希望文章能够帮你解决ios – 在解析swift中的Json时无法将’NSNull’类型的值转换为’NSString’所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1103304.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存