あなたが尋ねる:
これらのクラスにコンパイラフラグを付けた場合、これによる影響は何ですか?
心配する必要があると私が信じる唯一のことは、非ARCライブラリがメモリ管理に関連するCocoaの命名規則に従っていることを確認することです(たとえば、名前が、、、、またはで始まる場合は+1でオブジェクトを返すだけですretainCount
)。そうしないと、ARCは結果のオブジェクトを適切に管理できません。よく書かれたクラスのほとんどはこのパターンに準拠しているため、フラグを使用しても完全に問題ないはずですが、問題のクラスに完全に依存します。alloc
new
copy
mutableCopy
fno-objc-arc
【あります】パフォーマンスヒット?
実用的なパフォーマンスの問題はありません。
[それは]いい考えですか?
すべてが同じであれば、私は通常、コードをARCに変換するのが好きです。私が変換を控えるかもしれないいくつかの状況:
結論として、ARCに変換できれば、変換します。通常、このプロセスでは、ライブラリに満足していること、リークがないことなどを確認するために必要なテストを行います。そのため、実行するのは生産的な(煩わしい場合)プロセスです。私たち全員がプロジェクトに含めるコードに責任があり、ARC変換とテストプロセスの自然な副産物であるデューデリジェンスを経ずにコードを統合するべきではないと思います。
ARCに変換する場合は、変換を元の作成者に戻すことを提案します(たとえば、GitHubの「プルリクエスト」または作成者が利用できるメカニズムを介して)。これにより、コードベースに統合できます。