1

プログラムがARC(自動参照カウント)デバイスで実行されているかどうかを確認するにはどうすればよいですか?

私はこのコードを使うことができます:

#if ! __has_feature(objc_arc)
#    define FMDBRelease(__v) ([__v release]);
#else
#    define FMDBRelease(__v)
#endif

しかし、これはコンパイル時に機能します。このための簡単なコードは次のとおりです。

if ([object respondsToSelector:@selector(release)]) {
    [object release];
}

しかし、動作しません。私はどこにもそれを見つけていません。これに対する解決策はありますか?

4

2 に答える 2

5

ARCはコンパイル時テクノロジであるため、これ#if __has_feature(objc_arc)を行う正しい方法がその方法です。

于 2012-07-11T00:35:26.597 に答える
3

できません。ARCはコンパイル時のツールです。末尾呼び出しの最適化を可能にする呼び出しの挿入を除いて、実行時に実際に存在することはありません。

于 2012-07-11T00:35:36.277 に答える