Swift

Swift:Webkit 4 (URL読み込みで落ちる理由)

URL読み込み時に総当たりでエンコーディングを試す方式がObjective-CでOKなのに、SwiftではNGになる理由がわかりました。

次の書き方で、UTF-8で正常なURL読み込みができます。

wContent = NSString.stringWithContentsOfURL(nsURL, encoding:currentEncode, error:&wError)//URL読み込み
xbWebView.mainFrame.loadHTMLString(wContent,baseURL:nil)//読み込んだ内容をWeb Viewに設定する。

Objective-Cでは、URLを読み込んだエリアwContent がnilのとき、エンコーディングがうまくいっていないことを意味します。それで、if wContent == nilで判定していたのですが、これがまちがいでした。

正しくは、if NSString.stringWithContentsOfURL(nsURL, encoding:currentEncode, error:&wError) = nilと書かないといけないでした。

これは、余計な変数を間に使わず直接調べるようにしろということなのでしょうか?

Categories: Swift, 技術