-2

iOS 5.0 を使用して古い xCode で iOS 6 プロジェクトを実行したとき。プロジェクトの実行時に警告を発行し、例外を発生させます。

Property 'window' requires method 'window' to be defined - use @synthesize , @dynamic or provide a method implementation

その背後にある科学は何ですか?5.0 で @synthesize を明示的に追加する必要があるのはなぜですか。iOS 6では問題なく動作します。

4

1 に答える 1

4

これは、iOS 6 や iOS 5 とは関係ありません。これは、Xcode で使用されるコンパイラのバージョンと関係があります。最新バージョンの Xcode で使用されるコンパイラの最新バージョンは、Objective-C コンパイラの古いバージョンには見られない多くの新機能をサポートしています。@synthesizeこれらの機能の 1 つは、明示的なステートメントを必要としなくなりました。これらの新しい機能を利用すると、古いバージョンのコンパイラを使用してコードをコンパイルすることはできなくなります。

では、問題は、なぜこのプロジェクトを古いバージョンの Xcode でビルドしようとしているのかということです。あなたの目標は何ですか?最新の Xcode を使用して、プロジェクトの展開ターゲットを iOS 5.0 に変更し、ベース SDK を「最新」のままにしてください。

于 2012-12-15T16:44:24.000 に答える