OS 3.0に対して自分のiPhoneアプリをコンパイルしようとしましたが、高速列挙を使用するとコンパイルエラーが発生します。OS 3.0での高速列挙
私はcCommentクラスを含むNSArrayのを通過しようとしています:
for (cComment* newComment in comments.comments)
そして、私はこのエラーに
エラーが表示されます。アクセサのタイプは、プロパティのコメント "のタイプと一致していません。
これは、OS 2.2.1でコンパイルすると完全に機能します。
私はこのエラーを理解していますが、enumaretionは強く型付けされていませんが、私が知っている限りジェネリックス/テンプレートはobjective-cではサポートされていません。だから私はこれの周りの方法を見ることができます:
for (id commentObject in comments.comments)
{
cComment *newComment = (cComment *)commentObject;
}
誰かが別の方法を考えることができますか?なぜこれが変わったのですか?この変更についてのAppleの文書へのあらゆる点に感謝します。 にNSArray * allCommentsの=のcomments.comments と、それはここにすべての
後の列挙についてはそのないようですので、私は同じエラーを得たコード形式です:
EDIT
Grouchalの提案に続いて、私はこれを試してみましたヘッダファイル:
NSMutableArray * comments;
@property(readonly、nonatomic)NSArray * comments;
このプロパティは、実装ファイルで合成されます。
プロパティをNSMutableArrayに変更すると問題は解決したようですが、なぜこのようにする必要があるのかわかりません。何か案は。
ありがとうございました。
何らかの理由でコンパイラがより厳しいかもしれません。 (どちらのコンパイラを使用していても、Xcodeの新しいバージョンでは選択できます)この質問を閉じる必要はありません。あなた(または私)はもっと適切なものを使ってそれを再タグ付けすることができます。 –
私はMac開発とXcodeにはまったく新しいので、どのコンパイラがいいか分からないときはどういう意味ですか? Xcodeのメイン画面にあるドロップダウンボックスを使用して自分の設定を変更しています(おそらく問題です)。 私はこのサイトを初めて利用しているので、質問を処理する適切な方法についてもわかりませんが、新しい質問を提出しました。あなたのアドバイスを飾りましょう。 新しい質問 - http://stackoverflow.com/questions/1019365/objective-c-changes-between-os-2-2-1-and-os-3 –