Xcode4.3 で開発していたソースコード一式を、Xcode4.2 の環境にコピーしてコンパイルしたら、エラーメッセージが大量に発生しました。

receiver type “hoge” for instance message does not declare a method with selector “func:”

Xcode4.3 では、同じ .m ファイル内で参照する場合は .h に宣言しておかなくてもコンパイルが通ってしまうのですが、Xcode4.2 では厳密に書いておかないとだめらしいです。
今回問題になったソースコードでは、xxxencode と、xxxdecode の2つを使用していて xxxencode のほうだけヘッダファイルに宣言があるという状況だったため、混同してしまい発見が遅れました。
ビルドしてエラーメッセージを確認して修正、またビルドして確認して修正、という作業を何回か繰り返して、起動するようになりました。
Xcode4.2 と Xcode4.3 が混在しているチームで開発作業を進めるときは、.h に宣言をもれなく書いておくようにする必要があるというわけです。


0件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください