apple - objective-c从哪个版本开始就不用手动管理内存了?
PHP中文网
PHP中文网 2017-04-21 11:18:14
0
4
612

下载了xcode5,写代码时对一个变量比如NSString *str = [[NSString alloc] init]类似这样的写法,都不用手动释放内存了么?([str release])。这个特性是从xcode哪个版本开始的?
还有,那这样是不是意味着xcode5就是像java那样的自动管理内存了呢?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(4)
左手右手慢动作

2.0
2.0 では GC が追加されました

いいねを押す +0
伊谢尔伦

本当にここで記事をお探しですか? 「3 人の優秀な学生 Chris Lattner による Mac OS X (8) LLVM コンパイル ツール チェーンの背後にある物語」

いいねを押す +0
阿神

iOS 5.Xcode 4.2以降

いいねを押す +0
阿神

これまでのところ、Objective-C 開発者はメモリを管理するためにいくつかの方法を使用できますが、最も一般的な方法は [object dealloc] です。

MRC: [オブジェクト保持] が参照されるたびに、参照カウントが +1 され、[オブジェクト解放] が偶発的な解放とワイルド ポインターを防ぐために使用されます。

GC: これは Cocoa でのみサポートされています。NSGarbageCollector は Java と同様の自動ガベージ コレクションを実装できます。欠点は、パフォーマンスに影響するため、Cocoa Touch はこの機能を提供していないことです。

ARC: これは新しい機能です (実際にはまったく新しいものではありません)。Xcode の新しいデフォルト コンパイラーである Apple LLVM は、以前の LLVM-GCC を置き換え、コードがコンパイルされる前に Clang をフロントエンドとして使用します。これは分析され、保持と解放を追加する必要がある場合は、アナライザーがユーザーに代わってそれらを完了します。 ARC は、手動による多数の参照カウント操作を引き継ぎ、多くの間違いを回避できます。 ARC を使用した後は、retain メソッドと release メソッドを手動で使用することは禁止されています。dealloc をオーバーロードすることはできますが、実装するのはカスタマイズされたリリースのみです。

最近調べたので間違っていたらご指摘ください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート