31

「Objective-C でのプログラミング」第 3 版に従っいますが、最初の例で問題が発生しています。

このエラーが発生し続けます:

セマンティックな問題: 'NSAutoreleasePool' は利用できません: 自動参照カウント モードでは利用できません

これが私のコードです:

//
// main.m
// prog1 //
// Created by Steve Kochan on 1/30/11.
// Copyright 2011 ClassroomM, Inc.. All rights reserved. //

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSLog (@"Programming is fun!");
    [pool drain];
    return 0;
}

どんな洞察も大歓迎です。

4

5 に答える 5

42

コンパイラは、ARC (自動参照カウント) を有効にしてファイルをコンパイルするように求められています。それをオフにするか、さらに良いことに、例を最新化します。

int main (int argc, const char * argv[]) {
    @autoreleasepool {
        NSLog (@"Programming is fun!");
    }
    return 0;
}

(いいえ、前述の NDA のために ARC をオフにする方法があった場合、具体的にどのように ARC をオフにするかはわかりません。)

于 2011-07-11T20:10:08.610 に答える
17

あなたがまだ探している場合に備えてクイック投稿

ビルド設定でARCを無効にできます。

  • 左側のオーガナイザーで、プロジェクトをクリックします。
  • 次の列でターゲットを選択します。
  • 上部の[ビルド設定]タブを選択します。
  • [Objective-C自動参照カウント]( [ユーザー定義設定]グループの下に[CLANG_ENABLE_OBJC_ARC]と表示される場合があります)まで下にスクロールします(ビルド設定でARCオプションが見つからない場合は、コンパイラを切り替える必要があります。ビルド設定で見つけることができます)
  • NOに設定します。
于 2012-03-23T12:24:50.790 に答える
3

Apple の ARC への移行ガイドへのリンクは次のとおりです。

わかりました...これをチェックしてください。NSAutoreleasePool への特定の変更 - これは、最初のアプリを作成するときに Xcode が自身を初期化する方法です。私はあなたのことを知りませんが、私はこのアイデアが大好きです!

Kochan の本に従っている場合は心配ありません。プロジェクトを開始するときは、[Use ARC] ボックスのチェックを外してください。すべてが機能します。

于 2011-12-06T15:32:54.680 に答える
-1

新しいプロジェクトを最初に作成すると、ARC が有効になります。有効にする方法と無効にする方法を知っている唯一の方法は、最初にプログラムを作成するときです。これは、選択を解除する必要があるチェックボックスの 1 つです。

于 2013-02-07T22:38:54.233 に答える