Phương pháp bạn đang cố gắng gọi được prototyped như sau:
func stringByEvaluatingJavaScriptFromString(_ script: String) -> String?
Điều này có nghĩa:
- Phải mất một
String
như tham số duy nhất
- Nó trả về một tùy chọn
String
(String?
)
Bạn cần có một thể hiện của UIWebView
để sử dụng nó:
let result = webView.stringByEvaluatingJavaScriptFromString("document.documentElement.style.webkitUserSelect='none'")
Bởi vì kiểu trả về là optional, nó cần phải được tháo trước khi bạn có thể sử dụng nó. Nhưng hãy cẩn thận, nó có thể không có giá trị (nghĩa là nó có thể bằng nil
) và giá trị nil unwrapping dẫn đến sự cố thời gian chạy.
Vì vậy, bạn cần phải kiểm tra cho rằng trước khi bạn có thể sử dụng chuỗi trả về:
if let returnedString = result {
println("the result is \(returnedString)")
}
Điều này có nghĩa: Nếu result
không phải là nil
sau đó Unwrap nó và gán nó vào một hằng số mới gọi là returnedString
.
Ngoài ra, bạn có thể bọc nó cùng với:
let script = "document.documentElement.style.webkitUserSelect='none'"
if let returnedString = webView.stringByEvaluatingJavaScriptFromString(script) {
println("the result is \(returnedString)")
}
Hy vọng điều này có ý nghĩa đối với bạn.
Nguồn
2014-09-26 09:27:56