LoginSignup
3

More than 5 years have passed since last update.

WatchKitでWKInterfaceControllerのinitメソッドが変わった?(Xcode6.2beta)【メモ】

Last updated at Posted at 2014-12-11

WatchKitでControllerのinitメソッドが変わった?

12/10 付けでリリースされたXcode 6.2 beta2(6C95a)をインストールしたところ、これまで試していたWatchKitアプリがエラーを出すようになった。

エラー状況

InterfaceController.swift(エラー)
class InterfaceController: WKInterfaceController {
    override init(context: AnyObject?) {
        super.init(context: context)

        //省略
    }
}

image

対処方法

(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()

        //省略
    }
}

image

ただ、これまでは画面の遷移でデータの受け渡しに使っていた、contextパラメータがイニシャライザの引数からなくなっているので、どうすればいいのか調べないと。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3