2014-11-14 2 views
2

Я пытаюсь показать веб-просмотр в своем приложении. URL-адрес веб-представления в формате объекта, потому что я получил его от json. Таким образом, в моем коде я преобразовал объект в NSString и попытался загрузить представление, но мое приложение вышло из строя, сказав это: фатальная ошибка: неожиданно найденный nil при развертывании необязательного значения. Есть ли лучший способ конвертировать объект в строку? Как я могу получить веб-просмотр для отображения содержимого URL-адреса?App Keeps Crashing Found Nil Swift

Где производится Деталь товара:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showDetail" { 
     if let indexPath = self.tableView.indexPathForSelectedRow() { 
      let object: AnyObject = objectsPath[indexPath.row] 
     (segue.destinationViewController as DetailViewController).detailItem = object 
     } 
    } 
} 

Вот мой код:

var detailItem: AnyObject? { 
     didSet { 
      // Update the view. 
      self.configureView() 
     } 
    } 

    func configureView() -> NSURLRequest { 
     // Update the user interface for the detail item. 
     let detail: AnyObject = self.detailItem! 
     let stringURL: String = String(detail as NSString) 
     let url = NSURL(string: stringURL) 
     let request = NSURLRequest(URL: url!) <---ERROR occurs here 
     return request 



      // let string:St= detailItem! 
      // previewWebView. 
      // println(string) 
      //let url = NSURL(string: string) 
      //let request = NSURLRequest(URL: url!) 
      //self.previewWebView.loadRequest(request) 

     } 



    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     self.previewWebView.loadRequest(configureView()) 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 
+1

Где произошла ошибка? –

+1

Где вы устанавливаете 'detailItem'? Ваш 'viewDidLoad' вызывает' configureView', который разворачивает 'detailItem', не проверяя, является ли это' nil' или нет (и здесь нет ничего, что когда-либо устанавливало 'detailItem', поэтому я ожидал бы, что это будет' nil' и дать вам именно эту ошибку). Кроме того, не используйте 'AnyObject', если вам не нужно. Если 'detailItem'' String', то просто определите его как таковой и избавитесь от всех литейных и конвертирующих гираций в 'configureView'. – Rob

+0

Я обновил вопрос. Также это подробная таблица таблицы, если это имеет значение –

ответ

0

Вы звоните configureView() в вашей viewDidLoad() без учета стоимости self. detailItem. Вы должны проверить значение перед вызовом этой функции в viewDidLoad(), или вы должны изменить configureView(), чтобы не требовать, что определенно значение self.detailItem.

+0

hahah yea, я получил его сейчас, удалил себя, немой ошибкой хаха. Спасибо за вашу помощь! –