gpt4 book ai didi

ios - 展开可选值 Swift

转载 作者:行者123 更新时间:2023-11-29 01:26:01 26 4
gpt4 key购买 nike

我要在我的 WebView 中加载 html 文件。这些文件包含对 /css/images 子目录的引用。所以,我从 this answer 中找到了以下内容.

    let path: String? = NSBundle.mainBundle().pathForResource("Ace-VetBolus", ofType: "html", inDirectory: "HTMLFiles")
let requestURL = NSURL(string:path!);
let request = NSURLRequest(URL:requestURL!);

web1.loadRequest(request)

而且我无法解决这个问题: fatal error :在第二行展开可选值时意外发现 nil

最佳答案

使用 ! 强制解包一个值,因此如果它是 nil,您将看到一个 fatal error 。

您想使用 if let 语句或 guard 语句。

let path: String? = NSBundle.mainBundle().pathForResource("Ace-VetBolus", ofType: "html", inDirectory: "HTMLFiles")
if let unwrappedPath = path {
let requestURL = NSURL(string: unwrappedPath)
let request = NSURLRequest(URL: requestURL)

web1.loadRequest(request)
}

在 Swift 2 中使用 guard 功能如下:

let path: String? = NSBundle.mainBundle().pathForResource("Ace-VetBolus", ofType: "html", inDirectory: "HTMLFiles")
guard let unwrappedPath = path else {
return // or handle fail case some other way
}
let requestURL = NSURL(string: unwrappedPath)
let request = NSURLRequest(URL: requestURL)
web1.loadRequest(request)

最大的不同是 guard 模式允许您将展开的变量保持在相同的范围内,而 if let 创建一个新的范围。

关于ios - 展开可选值 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34012656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com