お?いけるくさい?

iPhoneアプリエンジニアのたまごです。いっちょまえエンジニア目指してちいさな発見や学んだことを覚え書きしていきます!Objective-C/iOS/開発

エラー

実機でアプリがビルドされなくなった。

 

ちなみにずうっと出ていたエラーは

[__NSCFData size]: unrecognized selector sent to instance error.

てやつ。

 

さくさく直したいタイミングで、かなりのロス。

「ああああもうなんでえええ」とかなりながらもソースを追いつつ

自分の行動を振り返ると、

怪しいなと思ったのは、AppDelegate.mに追加した

NSUserDefaultsで、

よく理解していないNSData型にデータを格納したところ...。

 

アプリ起動時のImageの表示切り替えのために、

データを格納しなきゃ!と思った私は、

UIImageを直接保存しようとアホなことを試みていました。

 

あとで怒られて気づいたことは、

「判定の要素さえあれば、

 viewDidLoadでその判定に基づいて画像を切り替えればいいだけのこと」

ってそれだけだったのに。

昨日は書けてたことが、今日はボケボケでした。

 

で。

NSData使った怪しいプログラミングしたところを

とりあえず全部コメントアウトして、

 

実機で立ちあがらなくなったけど

シュミレータはどうかと起動したところ、動く!

おおっ、と思ってコメントアウト外して再起動した瞬間落ちて、

その後シュミレータも死んだ。

ちーん。

 

あぁこれはヘルプだ....

つかなんで?何者?

このNSDataって内部に触るとかいうやつじゃないよね?

まさかこの期におよんでプログラム自体死にましたとかじゃないよね?

とかびくびくしながら助けを求めると、

「何やったの?」って。

全部経緯を話したら、

「NSDataのところで、他のところの同じ名前のUserDefaultsにアクセス

 とか変なことしたんじゃないの?」

 

それ....してました。

さっきアナライズかけたらまさにそこ指摘されて、一応直したところ。

 

どうしよどうしよて思ってたら、

「多分内部のデータに変なアクセスしておかしくなってるから

 アプリ自体消さなきゃ治んないよ」

って言われて、

「え...プログラム自体死んだってことですか...?(わなわな)」

ってきいたら、

「ちがう。テスト機のアプリ消したらいいだけ」

 

......よかったああああああ!!!

そんなことか!

まじでもう二度と起動することないと思ったけん絶望やった!

 

結局実機もシュミレータも

一回「×」でアプリを消して再起動したところ、

無事うつりました.....

 

こんなエラー解消方法もあるのね。