私はPythonの経験が何よりも多いので、可変配列と不変配列およびdictを操作するのは少し奇妙です。Xcode 4.5が追加したリテラル構文を本当に楽しんでいますが、簡単な混乱を行うと、次のような状況に遭遇します。
NSArray *myArray = [@[/*array objects here*/] mutableCopy];
[myArray addObject: @/*an object goes here*/];
コンパイラは、「myArrayがaddObjectに応答しない可能性があります」という警告を表示します。
コードはコンパイルされ、addObjectは正常に機能します。オブジェクトをNSLogして、myArrayに存在することを確認できますが、この警告の性質を完全には理解していません。この状況では、mutableCopyはNSMutableArrayを返しませんか?単にNSMutableArrayを使用し、リテラル構文を(過剰に)使用しようとしない方が適切ですか?
また、これはばかげた警告なので、無視して続行できますか?それは...最悪の場合は怠惰であり、将来的にはシェナニガンへの扉を開くだけかもしれません。