Swift 展开可选数据错误
Swift unwrapping optional giving error with data
我的 iOS 应用程序从服务器获取数据并使用 'Kingfisher' 从该数据中渲染一些图像,问题是每当我在服务器应用程序上添加或替换新图像时由于下面的代码而崩溃错误 :
“致命错误:在展开可选值时意外发现 nil”
let prfix:String = "MY_PREFIX_URL /\(org.image)"
celImage.kf_setImageWithURL((NSURL(string: prfix))!)
详情请查看截图
我不明白为什么会出现此错误,因为您可以看到 prfix
得到了一个值。
NSURL(string:)
是一个可失败的初始化程序,然后可以 return nil
如果您的 string
参数不是有效的 URL,您可以阅读NSURL:
的文档
Initialize a NSURLComponents with a URL string. If the URLString is malformed, nil is returned.
您必须检查您的最终 URL 完整性,因为它显然格式不正确...
我认为这是由于 prefix
包含不必要的字符,您可以使用 URLHostAllowedCharacterSet
解决此问题
您可以像这样修复 prefix
格式错误的 url (swift 2.x)。
let urlStr : NSString = prfix.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())!
celImage.kf_setImageWithURL((NSURL(string: urlStr as String))!)
这将确保 url 只包含正确的字符串。
我的 iOS 应用程序从服务器获取数据并使用 'Kingfisher' 从该数据中渲染一些图像,问题是每当我在服务器应用程序上添加或替换新图像时由于下面的代码而崩溃错误 : “致命错误:在展开可选值时意外发现 nil”
let prfix:String = "MY_PREFIX_URL /\(org.image)"
celImage.kf_setImageWithURL((NSURL(string: prfix))!)
详情请查看截图prfix
得到了一个值。
NSURL(string:)
是一个可失败的初始化程序,然后可以 return nil
如果您的 string
参数不是有效的 URL,您可以阅读NSURL:
Initialize a NSURLComponents with a URL string. If the URLString is malformed, nil is returned.
您必须检查您的最终 URL 完整性,因为它显然格式不正确...
我认为这是由于 prefix
包含不必要的字符,您可以使用 URLHostAllowedCharacterSet
您可以像这样修复 prefix
格式错误的 url (swift 2.x)。
let urlStr : NSString = prfix.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())!
celImage.kf_setImageWithURL((NSURL(string: urlStr as String))!)
这将确保 url 只包含正确的字符串。