-1

重複の可能性:
ARCを有効にしてSnowLeopardにデプロイする方法

メモリ管理の章からのMaxOSX用のCocoaプログラミングに関するHillegasBookからの引用

Mac OS10.7およびiOS5で導入された新しいソリューションは、自動参照カウントであり、より一般的にはARCとして知られています。ARCは、元の保持カウントメカニズムに依存していますが、ひねりがあります。コンパイラは、保持カウントの簿記を管理します。

10.5以降と10.8まで互換性がなければならないMaxOSXアプリケーションを書いています。したがって、上記に基づく私の理解は、ARCが10.7で導入された場合、ARCを使用してプラットフォーム10.7でアプリケーションをビルドすると、アプリは10.5および10.6で実行できなくなるということですか?ARC機能は10.7で導入されたため

アプリが10.5/6/7/8と互換性がある必要がある場合、どのメモリ管理を使用する必要がありますか

また、私のバックエンドは主にC ++(そして、ARCに依存せずにC ++メモリを自分で管理する必要があることを知っています)であり、フロントエンドはObjective-Cであると言うことも重要かもしれません。

私の開発プラットフォームは10.7Lion/Xcode4.3です

先輩は少し光を当ててください。

編集 コメントから、ARCはランタイムサポートにも依存していることを理解しています。これは、基本的に、私の場合は適切ではないことを意味します。また、とにかく10.5ではサポートされていないので、手動でメモリ管理を行う必要がありますか?

4

2 に答える 2

1

私ならMRRを選びます。

10.6 より前の OS X バージョンでは、ARC のどの部分も利用できません。弱い参照をゼロにするには、10.7 が必要です。

Apple ARC の可用性マトリックスについては、こちらを参照してください。

Xcode 4.2 の Snow Leopard バージョンは、10.7 SDK が含まれていないため、OS X で ARC をまったくサポートしていません。ただし、Snow Leopard 用の Xcode 4.2 は iOS 用の ARC をサポートしており、Lion 用の Xcode 4.2 は OS X と iOS の両方をサポートしています。つまり、Snow Leopard で動作する ARC アプリケーションを構築するには、Lion システムが必要です。

于 2013-02-03T23:24:05.260 に答える
0

ARC は SDK の機能であり、10.7 以降の SDK を使用してコンパイルする限り、ほとんどの機能は古い OS でも使用できます。

関連: ARC を有効にして Snow Leopard にデプロイする方法

Mac OS X 10.6 および iOS 4 で実行される ARC を使用してプログラムを構築することは可能ですが、これらの OS では弱い参照をゼロにすることはできません。ここではすべての弱参照を __unsafe_unretained にする必要があります。非ゼロの弱参照は非常に危険であるため、この制限により、これらの OS での ARC の魅力が大幅に低下すると考えられます。

ああ、10.6 以降でのみ。ヒョウはサポートされていません。

于 2013-02-03T21:51:17.047 に答える