XcodeでiPhoneアプリ開発の勉強中、参考サイトのコードを試してはソースコードがグチャグチャになって、それまで動いていたものが動かなくなることが多々あると思います。
そんな時に、XcodeのSnapshot機能を使えば、スナップショットを撮ってあったところまで戻すことができます。
ロールプレイングゲームとかで取りあえず進んで、失敗したことが分かったらセーブポイントに戻るような感じです。
MacのTimeMachineと同じような機能です。
先ずは、問題なく動く状態の時のスナップショットを撮っておきます。
XcodeのFileメニューから「Create Snapshot」を選びます。
すると、上からダイアログが降りてきます。
何かスナップショットに説明を付けたいときは、「Enter description here」に入力します。
スナップショットの名前を付けたら「Create Snapshot」をクリックします。
スナップショットの作成に少し時間がかかった後、Xcodeが使えるようになります(特に告知は無いです)。
これで、スナップショットを撮る作業は終わりです。
次は、プロジェクトをスナップショットした状態に戻す作業(Restore)です。
SIGABRTとかBAD_ACCESSとか出て直しても戻らなくてウキー!となった時に、好きなスナップショットへ戻れます。
XcodeのFileメニューから「Restore Snapshot」を選びます。
すると、これまで撮ったスナップショットのリストが降りてきます。
戻りたいときのスナップショットを選んで、Restoreボタンをクリックします。
「User Created Snapshots」のタブボタンをクリックすると、自分が生成したスナップショットだけがリストに表示されます。
現在のソースコードとRestoreした後のソースコードの違いを比べて見せてくれます。左で比較するクラスを選ぶことができます。
確認したら、Restoreボタンをクリックします。Restoreすると、自動的にその時のスナップショットが撮られ、少し時間がかかります。
これ選べると良いんですけどね。。。
Restoreに暫く時間がかかった後、「Restore Succeeded」とリストアできたことを知らせてくれます。
Xcodeを見ていなかったときは、MacのDockでアイコンが跳ねてくれます。
スナップショットは、Organizerで消すことができます。
Organizerの「Projects」タブを開き、必要があれば左のカラムからプロジェクトを選んで、消したいスナップショットを選択します。
画面右下の「Delete Snapshot」をクリックすると、本気で消すかどうか尋ねてくるので「Delete」します。
これで、いじり過ぎて元に戻せなくなったプロジェクトのソースコードも、スナップショットさえ撮っておけば、いつでも戻れます。