Xcode デバッグ 値変更
概要
- Xcodeでデバック中に、変数の値や関数の実行する方法の説明です
- デバックエリアでLLDBコマンドを実行して確認します
- 値の変更はデバックエリアで「po 変数名 = 値」で変更できます
LLDBとは、Mac OS X上のXcodeでデフォルトのデバッガで、デスクトップとiOSデバイスとシミュレータ上のC、のObjective-CとC++、Swiftのデバッグをサポートしています。
- 参考URL:About LLDB and Xcode
実行方法
- デバックエリアを表示(メニューバー->View->Debug Area->Show Debug Area)
- 止めたいところにブレークポイント設定
- プログラムの実行
- デバックエリアでLLDBコマンドの実行
実行例
- 変数の値や関数の実行する場合は、「(lldb) po 変数名 または 関数名」を実行します
「po self.dynamicType」でプロジェクト名とクラス名を表示している例
LLDBコマンド一覧(一部抜粋)
省略形 | 内容 | 正式名 |
---|---|---|
po | 式の評価(poはオブジェクト、pは基本型も可) | expression -o -- |
h | ヘルプの表示 | help |
s | ステップイン | thread step-in |
c | 続きを実行(次のbreakPointまで) | process continue |
br l | breakPointを一覧表示 | breakpoint list |
bt | 現スレッドのバックトレース情報を表示 | thread backtrace |
iOS 保存領域 比較 〜NSUserDefaults, CoreData,Keychain,等〜
アプリ容量の制限について
アプリのストレージの最大容量は、おそらく制限なし(20M以上だとDL時にwifiが必要となる)
保存領域について
種類 | 説明 |
---|---|
アプリ領域 | アプリが自由に使え、他のアプリから参照できない領域 |
OS領域 | OSが使用するデータが保存されており、基本的にアプリから参照できない領域 |
共有領域 | メディアライブラリ(写真、音楽等)やイベント(カレンダー等)、連絡先は全てのアプリから参照することができる領域(アプリからできる内容は、書き込みと閲覧のみ) |
永続データの復元(比較)について
- 復元時にデータも復元するには、外部サーバーにデータを保存するかiCloudを利用しないと殆ど初期化される
- 保存領域が共有領域であれば、アプリ自体にiCloudの処理をいれなくても、共有領域のデータは復元できそう
種類 | 復元可否 | 備考 |
---|---|---|
アーカイブ | ☓ | オブジェクトをバイナリ形式に変換してからファイルに永続化(一番基礎的な技術) |
プロパティリスト | - | ユーザーが変更しないもの(定数)、plist |
NSUserDefaults | ☓ | ユーザーが変更するもの |
CoreData | ☓ | データ量多い |
Keychain | ◯ | パスワードや個人情報(暗号化されていない場合復元されない) |
アプリ内にDBとして保存したい場合realmがオススメです。(日本語のドキュメントもしっかりしていて、組み込みも簡単で、ブラウザも用意されています)