カテゴリー: iPhoneアプリ開発

Analyze実行時のDead storeメッセージ

 

※本記事は、旧ブログからの再掲です。

XcodeでAnalyzeを実行したら、下記の警告メッセージが出力されました。

“Value stored to ‘xxx’ during its initialization is never read”

調べたら、初期化した値が参照されていないことを指摘するメッセージのようです。

指摘されたのは以下のコードです。

NSMutableDictionary *dic = [NSMutableDictionary dictionary]; ←←この行で警告
dic = [_array objectAtIndex:index];

1行目で空のディクショナリを生成し変数dicに代入していますが、
2行目では別のオブジェクトを代入しています。
1行目で生成したディクショナリは以後使われません。
そのため、Analyze実行時に1行目の代入が無駄な処理として指摘されたようです。

対処としては、

NSMutableDictionary *dic = [_array objectAtIndex:index];

もしくは

NSMutableDictionary *dic; (or NSMutableDictionary *dic = nil;)
dic = [_array objectAtIndex:index];

とすることで、警告メッセージは出力されなくなりました。

 

複数ビューのタッチイベント受信処理

 

※本記事は、旧ブログからの再掲です。

複数のビューを重ねた場合のタッチイベント受信処理について、
ハマってしまったので備忘録です。

図のように一番下の階層から ScrollView→UIView→UIViewとビューを重ね
UIView A → シングルタップイベント
UIView B → スワイプイベント
を受信できるように設定したのですが
いざ実行してみたら、UIView B上でシングルタップしても何も反応しませんでした。

<期待する動作>
 UIView B上でシングルタップをした場合にも、UIView Aの受信処理が起動する。

view_touch_1

(さらに…)

各種サイズについて

 

※本記事は、旧ブログからの再掲です。

自分用のメモです。忘れるので。

・画面 (ステータスバー含む)
iPhone4Sまで  320 x 480 pt
iPhone5     320 x 568 pt
([[UIScreen mainScreen] bounds])

・画面(ステータスバー含まない)
iPhone4Sまで  320 x 460 pt
iPhone5     320 x 548 pt
([[UIScreen mainScreen] applicationFrame]

・ステータスバー
高さ : 20pt  ( [[UIApplication sharedApplication] statusBarFrame].size.height)

・ナビゲーションバー
高さ : 44pt (self.navigationController.navigationBar.bounds.size.height)

・タブバー
高さ : 49pt (self.tabBarController.tabBar.frame.size.height)

・キーボード(portrait)
高さ : 216pt

 

ピクセルとポイント
(Apple公式ドキュメント「iOSヒューマンインタフェイスガイドライン」より)

ピクセルとは、画像編集アプリケーションにおいて、デバイス画面のサイズや作成するアイコンのサイズを検討する場合に使用する測定単位です。ポイントとは、画面上の描画領域のサイズを検討する際に使用する測定単位です。
 標準解像度のデバイスの画面では、1ポイントが1ピクセルに対応しますが、それ以外の解像度では対応の割合が異なる場合があります。たとえば、Retinaディスプレイでは1ポイントは2ピクセルに相当します。

 

他バージョンのシミュレータを追加

 

※本記事は、旧ブログからの再掲です。

現在、Xcode4.6.2を使用中で、普段はiOS6.1のシミュレータでデバッグしているのですが、
他バージョンのシミュレータを使おうと思った時に選択肢にありませんでした。

ネットで調べたら、追加でインストールする必要があると分かったので早速インストールしました。

追加の方法は、
[Xcode]→[Preferences]→[Downloads]→[Componentsタブ]
で他バージョンのシミュレータが一覧で表示されるので、
追加したいバージョンのinstallボタンをクリックすればインストールされます。

another_simulator_1

(さらに…)

ビルド時のduplicate symbolsエラー

 

※本記事は、旧ブログからの再掲です。

Xcodeでビルド実行時に下記エラーが発生しました。

“duplicate symbol XXXXX in:
/Users/mal000n/Library/Developer/Xcode/DerivedData/…../XXX.o
ld: 2 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)”

エラーが発生したのは実装ファイル上部の文字列定義をしている箇所で、下記のように定義していました。
複数の実装ファイルで同じ変数を定義していました。
(定義している文字列はファイル毎に違うものを設定しています)

NSString *MOJIRETSU_TEIGI = @”mojiretsu”;

(さらに…)