29
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

watchOS 2 で本当にウォッチ側で処理されているのか確認する

Last updated at Posted at 2015-06-10

いよいよ待望のネイティブ動作する watchOS 2 が登場しました。で、さっそく試してみよう、と Xcode 7 で WatchKit App をつくってみると、以前と同じように Extension であることがわかります。きっとこの Extension に書いたコードがウォッチ側で実行されるということなんだろうとは理解してはいても、やはり本当にそうなっているのか確認したくなります。また、以前つくった WatchKit App は watchOS 2 ではネイティブ動作するのかどうなのか?とか。ドキュメントに書いてあることと挙動が違うこととかもごくたまにありますし。。

で、どっちで処理されてるのか確認する方法はないかなーと考えてみてひとつ思いついたのが NSProcessInfo を利用する方法。

print("\(NSProcessInfo().operatingSystemVersionString)")

このコードを iPhone で実行すると、

Version 9.0 (Build 13A4254v)

と iOS のバージョンとビルド番号が出力されます。

これを WatchKit Extension のコード内で実行すると、

Version 2.0 (Build 13S5254w)

watchOS のバージョンとビルド番号が出力されます。

ということでこの処理はウォッチ側で実行されている、ということがわかります。

ちなみに NSProcessInfo は基本的にはプロセスに関する情報を取得するためのクラスですが、結構いろんな情報が見れます。environment とかでも何かしらウォッチ側かどうかの判断ができるかもしれません。

var environment: [String : String] { get }
var arguments: [String] { get }
var hostName: String { get }
var processName: String
var globallyUniqueString: String { get }
29
29
0

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
29
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?