0

私は2009年からObjective-Cの本を読んでいて(私のライブラリにあった唯一の版です)、著者は常に読者にメモリを解放するように促しているため、これは少し混乱していますが、この方法を使用しようとするとエラーが発生します. 少し調べてみたら release メソッドが廃止されていることがわかりましたが、 release メソッドの代わりにメモリを管理するために何かする必要があるのでしょうか、それとも Objective-C は現在ガベージ コレクションを備えているのでしょうか。

例えば:

NSString *s = [[NSString alloc] init];
[s release];
4

2 に答える 2

3

ガベージ コレクションではありませんがAutomatic Reference Counting( ARC) 作業中です。

本の例に従うには、Xcode で新しいプロジェクトを作成し、ARC を使用するオプションの選択を解除します。

于 2012-10-07T18:19:19.880 に答える
2

ARC が有効になっています。への呼び出しとretainreleaseコンパイラによって自動的に挿入されます。メモリ管理を手動で行う場合は、ターゲットのビルド設定で ARC を無効にします。OS X にはガベージ コレクションもありますが、推奨されていません。

于 2012-10-07T18:19:36.077 に答える