まとーか鈴木

千の姿と千の技と千の風

【iOS7 TechTalks Videos】"Hidden iOS7 Development Gems"を観たのでメモ

遂にiOS7 TechTalksのビデオが公開されましたね。

今回は"Hidden iOS7 Development Gems"で分かったことのメモを書いてく。
英語をちゃんと理解出来てないかも…つくづく英語が出来ればと思う。

Method Completion

'+'か'-'を入力してからメソッド名を入力すれば補完が効く。

Debug Quick Looks

Xcode5.1から任意のオブジェクトをQuickLookで表示出来る。
debugQuickLookObjectメソッドでオブジェクトを返せば良いみたい。
Xcode5.0では何も表示されず、いつも通り。

- (id)debugQuickLookObject{
    NSDictionary* attributes = @{NSForegroundColorAttributeName : [UIColor redColor],
                                 NSFontAttributeName : [UIFont systemFontOfSize:48]};
    return [[NSAttributedString alloc] initWithString:@"Look At Me!" attributes:attributes];
}

Rename IB Object

IBでView階層を見るとき、オブジェクトの名前を任意に決められる。
これは見た目だけの反映で実行結果には影響しない。

バグ混入リビジョンを探す方法

git bisectで二分探索的に探す。

  1. git bisect start : 正常に動いているリビジョンを指定する
  2. git bisect bad : バグってることが判明しているリビジョン指定する
  3. git bisect good 2.0 : 良いバージョン2.0を指定する
  4. 中間のリビジョンをHEADにする
  5. テストを実行する
  6. 繰り返し

iOS Simulator

着信でステータスバーの高さを2倍にしたりメモリワーニングをシミュレート出来るって話。
Simulatorのメニューから選択可能。

Color Blend Layers

Simulatorから選択可能で、透過しているViewが赤色で表示されている。
簡単にテーブルのパフォーマンス改善などが見込めるからチェックすると良い。

Instruments

  • Profiling Backgrond Fetch

Instrumentに"Simulate Background Fetch"の項目があり、試験出来る。
時間軸上に表示されるフラグアイコンはアプリのForeground/Backgroundの状態を示している。

  • Call Trees

メソッド呼び出しを表示出来る。
"Hide Systemm Librarires"などを指定すれば、アプリ内のメソッド調査に集中出来る。

  • CPU Strategy View

CPUの様子を見れる。
enumerateRangesWithOptions:usingBlock:メソッドのオプションに
NSEnumerationConcurrentを指定するとCPUを並列で使用出来る。

・URL Utilities
文字列のappendでURLを整形するのではなく、
NSURLComponentsクラスという便利クラスが出来た。

1つ前の記事のURLを作ってみた。これはいい!
path先頭に'/'を付けないとダメね。

NSURLComponents* components = [[NSURLComponents alloc] init];
components.scheme = @"http";
components.host = @"matouka-suzuki.hatenablog.com";
components.path = @"/entry/2013/12/19/225851";
NSURL* url = components.URL; // 出来上がり

絵文字もパーセントエスケープするらしい。
pmarcosさんが"エモジ"って言ってて、ちょっと笑った。

  • NSByteCountFormatter

ダウンロードインジケーターを使う場合などに便利なバイト単位便利クラス。

次はどれ観ようかなー。