Project Unknown's Blog

Peojct.Unknownと言う名前で細々とアプリ開発をやってるメンバーのブログです。

Objective-C 初心者あるあるトラブル対応

お久しぶりです。
どうまずです。

今回は初心者の私がよく遭遇したトラブルとその解決方法を記載しようと思います。

クリーン→ビルド

よくあったのが、直したはずなのに、Xcodeがエラーで怒り続けているということです。
そんなよくわからない状況に遭遇したときは、とりあえず、クリーンを実行して、データを綺麗にしてらからビルドです。

「command+shit+K」やって、「command+B」です。

困ったら、とりあえずこれ。
人に聞く前にこれです。

Xcodeが落ちる。

私のXcodeはよく落ちました。
特に、プログラムを実行しようとすると落ちました。
どうも、これはメモリ不足のようです。

そう言えば、私のPCはちょっと古いので、最新のXcodeに耐えられなかったようです。

これはその・・・買い換えるしかない!

一応私の編み出した?回避策ですが、負荷を分散です。
まず、実行すると、ビルドをしてからシミュレータや実機で動作させてくれますが、これを一気にやるのに耐えてくれないので、まずはビルドをやってから実行すると、7割の確率で落ちませんでした。

「command+B」→「command+R」ですね

Signal SIGABRT

実行前にエラーが一切ないことを確認して、動かすと、たまにこのエラーが発生します。

20150325.png

しかも、自分が書いたソース上ではなく、書いた覚えがない所で発生している。
よくみると、mainメソッドで発生!
メインなんて手を加えていないから、何がなんだかさっぱりという混乱状態に陥ります。

まさに初心者殺しのエラーですよね。

このエラー発生前後を思い出してみると、ボタンのタップ処理が入らなくなったからコメントアウトしたり、タップ処理メソッド名を変更していたり、タップ処理メソッドそのものを削除していたり、storyboardなどから引っ張って作成したメソッド絡みで何かやっていました。

でも、ソース上は存在しないし、そもそも、ビルドでエラーになっていないぞ!
って、イライラするわけです。

実はソース上に存在してないくても、storyboard上は残ってたりします。

storyboardの怪しいオブジェクトをcontrolを押しながらクリックします。

すると、下記のような吹き出しが出てきます。

20150325_02.png

すると、消したはずのメソッドが残っていることがわかります。
これを消せば、エラーが解決されます。

私がよく遭遇したのはこのエラーはこんな感じです。
これ以外にも、大量のエラーに遭遇し、助けを求めたり、泣き叫んだり、瞑想したりして解決しました・・・ってか、殆ど助け求めてたような気も・・・

がんばれ、自分!

[追記]
ってか、これ、Xcode絡みのトラブルで、Objective-Cってわけでもないのかな・・・