0

StackOverflowを使用している間、リリースは非推奨になっていますが、一部のユーザーがすべてのリリースをそのままにしてコードを投稿していることに気付きました。リリースするということは、次のような意味です。

[self.data release];

なぜユーザーはまだこれを行うのですか?古いバージョンのiOSのプログラミングについては何も知らないので、そうしたいと思っていますが、作成中のアプリで何かをリリースしようとすると、非推奨エラーまたは警告が表示されます。今言ったことが正しければ、古いバージョン用にプログラムするにはどうすればよいですか?また、これらのエラーを防ぐにはどうすればよいですか?

4

2 に答える 2

2

さて、少し広い質問ですが、簡単な答えは次のとおりです。ドキュメントを読んでください。

ドキュメントから高度なメモリ管理

Objective-Cは、アプリケーションメモリ管理の2つの方法を提供します。

1)このガイドで説明されている「手動保持解放」またはMRRと呼ばれる方法では、所有しているオブジェクトを追跡することにより、メモリを明示的に管理します。これは、FoundationクラスNSObjectがランタイム環境と組み合わせて提供する参照カウントと呼ばれるモデルを使用して実装されます。

2)自動参照カウント(ARC)では、システムはMRRと同じ参照カウントシステムを使用しますが、コンパイル時に適切なメモリ管理メソッド呼び出しを挿入します。新しいプロジェクトにはARCを使用することを強くお勧めします。ARCを使用する場合、状況によっては役立つ場合もありますが、通常、このドキュメントで説明されている基本的な実装を理解する必要はありません。ARCの詳細については、「ARCリリースノートへの移行」を参照してください。

ええと、あなたは2番目の方法を使用していますが、昔はプログラマーは手動保持リリースを使用していました。そして、一部の古い学校の人々(私を1人として数えます)はまだそれらを使用しています。

ARCリリースノートへの移行では、この移行について説明します。

編集:いくつかの追加(最初はコメントとして投稿されましたが、回答に追加したほうがいいと思いました..)

あなたが最初にARCで始めたのなら、それが進むべき道です。手動の参照カウントは最初は困難で混乱を招きますが、一度学べば、メモリがコアレベルでどのように管理されているかを深く理解するのに役立ちます(iOSプログラマーとしての信頼度が向上することを信じてください)。ARCが行うことは、コンパイル時にこの保持/解放呼び出しを自動的に追加することです。したがって、リリース呼び出しはまだ存在します。それについて心配する必要はありません

手動保持リリースのパラダイムを理解していなくてもiOS開発者になることができますが、それらを学べば悪いことは何も起こりません(そしてたくさんの良いこともありません)。

于 2012-12-27T05:49:46.737 に答える
1

XCodeの最近の新機能は、ARC(自動リソースカウント)です。あなたの場合のように、ARCがオンになっている場合、独自のオブジェクトを解放することはできません。ARCをオフにすることを選択した場合は、独自のオブジェクトを解放する責任があります。他の理由でARCをオフにする必要がない限り、ARCをオンのままにしておくことをお勧めします。

グーグルですばやく検索すると、このサイトで詳細がわかります:http ://www.drdobbs.com/mobile/automatic-reference-counting-on-ios/240000820

于 2012-12-27T05:49:17.733 に答える