#WatchKitでControllerのinitメソッドが変わった?
12/10 付けでリリースされたXcode 6.2 beta2(6C95a)をインストールしたところ、これまで試していたWatchKitアプリがエラーを出すようになった。
##エラー状況
InterfaceController.swift(エラー)
class InterfaceController: WKInterfaceController {
override init(context: AnyObject?) {
super.init(context: context)
//省略
}
}
##対処方法
(2014/12/25) Xcode6.2 Beta3からクラス作成時の初期化メソッドとして、initではなくawakeWithContextメソッドが使われるようになっていました。これでcontextを使用できそうです。
InterfaceController.swift
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
}
(解決済み)
詳細までは調べていないのだけれど、イニシャライザが変わったようで、以下のように書き換えたところエラーは解消された。
InterfaceController.swift
class InterfaceController: WKInterfaceController {
override init!() {
super.init()
//省略
}
}
ただ、これまでは画面の遷移でデータの受け渡しに使っていた、contextパラメータがイニシャライザの引数からなくなっているので、どうすればいいのか調べないと。