私は画像配列からiPhoneでシンプルなアニメーション画像を作成しようとしています:
- (void)viewDidLoad {
NSArray *imageArray;
imageArray = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"Sun1"],
[UIImage imageNamed:@"Sun2"],
nil];
fadeImage.animationImages = imageArray;
fadeImage.animationDuration = 1;
[imageArray release]; //==== HERE IS WHERE I GET THE ERROR ======
どうすれば修正できますか?
ソリューション#1:
リリースステートメントを削除するだけです。 ARCが管理します。
[imageArray release]; // remove this line
ARCは自動参照カウントです。手動参照カウントの反対。
WWDCからの講演の素晴らしいビデオがいくつかあります。ご覧になりたい場合はリンクを提供できます。
ARCリリースノートへの移行 で、を参照してください。ARCは新しいルールを適用します:
Deallocを明示的に呼び出したり、retain、release、retainCount、またはautoreleaseを実装または呼び出したりすることはできません。
禁止は、@ selector(retain)、@ selector(release)などの使用にまで及びます。
ソリューション#2:
コードをARCに変換したくない場合(たとえば、新しいアプリケーションを作成していないが、古いアプリケーションを維持している場合、またはARCに移行する価値がないほど多くのコードをインポートした場合)、ARCを無効にできます。
選択したファイルのARCを無効にするARCを無効にするには、特定のファイルに-fno-objc-arc
コンパイラフラグを使用できます。ターゲットを選択し、Build Phases
-> Compile Sources
に移動します。 Compiler Flags
を編集し、-fno-objc-arc
を追加します
プロジェクトのARCを無効にする
出典: Xcode4.2自動参照カウントを無効にする方法