我要在我的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: unexpectedly found nil while unwrapping an Optional value
在第二行。
答案 0 :(得分:1)
使用!
强制展开某个值,如果它nil
,则您将看到致命错误。
您想使用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
创建新的范围。
答案 1 :(得分:0)
您应该使用NSBundle方法URLForResource:
> df
Value Year Range Avg
1 12 1906 1900-1910 15.333333
2 15 1909 1900-1910 15.333333
3 7 1911 1911-1920 6.666667
4 22 1950 1941-1950 12.500000
5 4 1917 1911-1920 6.666667
6 9 1917 1911-1920 6.666667
7 19 1902 1900-1910 15.333333
8 1 1921 1921-1930 1.000000
9 2 1931 1931-1940 2.000000
10 3 1941 1941-1950 12.500000
11 4 1951 1951-1960 4.000000
12 5 1961 1961-1970 5.000000
13 6 1971 1971-1980 6.000000
14 7 1981 1981-1990 7.000000
15 8 1991 1991-2000 15.333333