3

Я работаю с WatchKit, у меня простой интерфейс только с таблицей, но я получаю сообщение об ошибке только с несколькими строками кода, возможно, я забыл что-то действительно основное.WKInterfaceTable & setNumberOfRows получить сбой «неожиданно найдено нуль при распаковке необязательного значения»

Мой интерфейс:

строка внутри таблицы имеет идентификатор:

и пользовательский класс:

Контроллер реализован с помощью этот код:

import WatchKit 
import Foundation 

class ActiveListController: WKInterfaceController 
{ 
    @IBOutlet weak var tableView: WKInterfaceTable! 

    override func awakeWithContext(context: AnyObject?) 
    { 
     super.awakeWithContext(context) 

     loadData() 
    } 

    override func willActivate() 
    { 
     // This method is called when watch view controller is about to be visible to user 
     super.willActivate() 
    } 

    override func didDeactivate() 
    { 
     // This method is called when watch view controller is no longer visible 
     super.didDeactivate() 
    } 

    func loadData() 
    { 
     tableView.setNumberOfRows(10, withRowType: "ItemRow") // GET ERROR 

     for index in 0...9 
     { 
      let row = tableView.rowControllerAtIndex(index) as! ItemRow 

      row.nameLabel.setText("test") 
     } 
    } 

} 

и, очевидно, у меня есть свой собственный класс для одной строки

import Foundation 
import WatchKit 

class ItemRow : NSObject 
{ 
    @IBOutlet weak var checkImage: WKInterfaceImage! 
    @IBOutlet weak var nameLabel: WKInterfaceLabel! 
} 

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

fatal error: unexpectedly found nil while unwrapping an Optional value

Может быть, это просто ошибка, может быть, нет, но, пожалуйста, помогите мне: \

ответ

1

Наконец-то я нашел свою ошибку.

Я забыл установить свой единственный интерфейс для Apple Watch в качестве начального контроллера.

Да, невероятно, и неловко, но это все. Ошибка, обеспечивающая Xcode, не самая лучшая, было бы лучше что-то вроде «начального контроллера отсутствует».

Я надеюсь, что мой вопрос & ответ может помочь кому-то один день :)

1

for в вашем коде идет от 1...10, и он должен быть 0...9, потому что строки 0 основаны на

+0

спасибо за кончик, но это не привело к аварии, реальная проблема заключается в линии выше –

+0

ттт, что нечетная действительно. Еще один совет - проверить правильность установки. Например: в моем случае, когда я указал пользовательский класс, там поле модуля автоматически заполнено чем-то вроде 'wktest_WatchKit_Extension' (я назвал свой проект wktest), и я вижу, что на скриншоте это не так. Если вы можете опубликовать полный проект где-нибудь, я мог бы посмотреть. Приветствия и удачи. –

+0

нет спасибо, на данный момент я начал щедрость и исправил для :) –

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

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