2015-11-27 6 views
1

Я пытаюсь загрузить содержимое HTML с этого веб-сайта в веб-представление. Но я получаю следующее сообщение об ошибке:Невозможно преобразовать значение типа «NSString»? до ожидаемого типа аргумента 'String'

Cannot convert value of type 'NSString?' to expected argument type 'String'

Вот мой код:

override func viewDidLoad() { 
     super.viewDidLoad() 

     let webUrl = NSURL(string: "http://www.stackoverflow.com/users/5438240/naishta") 

     let webContent = NSURLSession.sharedSession().dataTaskWithURL(webUrl!){ 
      (data,response,error) in 

      if error == nil{ 

       let readableForm = NSString(data: data!, encoding: NSUTF8StringEncoding) 
       print(readableForm) 

       self.displayWeb.loadHTMLString(readableForm, baseURL: nil) //here is where the error is thrown 
      } 


     } 
     webContent.resume() 

    } 

ответ

1

был в состоянии решить сам с изменением, как показано ниже, требовался «как строка!» Преобразование

self.displayWeb.loadHTMLString(readableForm as! String, baseURL: nil) 
3

Вы должны использовать строгую строку типа Swift и использовать защитный код, чтобы убедиться, что данные не ноль, как указано ниже:

guard 
    let data = data where error == nil, readableForm = String(data: data, encoding: NSUTF8StringEncoding) 
else { return } 

print(readableForm) 
self.displayWeb.loadHTMLString(readableForm, baseURL: nil) 
-1

Фактический путь

var a:NSString = "this is" 
let c = String(a) 
+0

@EricAya Можете ли вы показать мне Apple, док, который говорит разработчику использовать без __. Init()? Просто чтобы сделать это фактом. –

Смежные вопросы