クラスでallocを呼び出すと、オブジェクトの参照カウントが1になるかどうか。例:NSObject *obj = [NSObject alloc]
;、このコード行が実行された後、オブジェクトの参照カウントは0または1ですか?私はソースコードを読んで、私はいくつかのコードを見つけることができませんalloc
参照カウント上の操作のためのメソッド。参照カウント0のオブジェクトは、オブジェクトが破壊される場合、それはどのように達成するか、誰かが混乱を解決するのに役立つかどうか、ありがとう!クラスがallocメソッドを通してオブジェクトを作成するとき、オブジェクトの参照カウントは1に変わるか?
-1
A
答えて
0
alloc
メソッドはオブジェクトを作成します参照カウントは1に計算されます。オブジェクトを作成し、保持したクラスを意味します。
メソッドにローカルオブジェクトを作成し、それを解放するのを忘れると、メモリがリークします。手動でリリースする必要があります:[obj release];
。
オブジェクトが割り当てられた場合、保持カウントを1に設定する操作はありません。オブジェクトを保持する他のクラスがない場合、参照カウントを呼び出すメソッドは1を返します。別のオブジェクトが現在のオブジェクトを保持している場合、現在のオブジェクトの参照テーブルはその保持を保存します。結果は計算によって増やされます。メソッドソース:それは、ブロックの外まで
uintptr_t
objc_object::sidetable_retainCount()
{
SideTable& table = SideTables()[this];
size_t refcnt_result = 1;
table.lock();
RefcountMap::iterator it = table.refcnts.find(this);
if (it != table.refcnts.end()) {
// this is valid for SIDE_TABLE_RC_PINNED too
refcnt_result += it->second >> SIDE_TABLE_RC_SHIFT;
}
table.unlock();
return refcnt_result;
}
0
それは、カウントを保持だが1です。 もう1つのオブジェクトが必要です。保持カウントは1ずつ増加します。 誰も必要がなくなるまで存在します。
関連する問題
- 1. オブジェクトの参照を介してオブジェクトを作成する
- 2. 別のクラスの参照とは異なるクラスのオブジェクトを作成する
- 3. オブジェクトとそのクラスのオブジェクトへのメソッド参照を提供する方法は?
- 4. オブジェクト参照を使用してクラスを作成できますか?
- 5. AndroidとOpenGL - 別のオブジェクトを通してオブジェクトを参照
- 6. UMLクラス図では、クラスが別のクラスのオブジェクトを作成するが、オブジェクト参照は保存しないことをどのように示しますか?
- 7. メソッドを参照してオブジェクトを渡す
- 8. Jackson JSONオブジェクト参照をJSON.Netオブジェクト参照に変換する
- 9. そのクラスがロードされているオブジェクトの参照を作成するときは?
- 10. 他のオブジェクトを参照して値1、0 -1でオブジェクトをソート
- 11. 私はオブジェクトからいくつかのメソッドのメソッド名を保持する変数とメソッドの参照を作成しようとしていたJava 8
- 12. オブジェクトを使用する代わりにクラス参照で変数を設定するときのNPE
- 13. 基本オブジェクトを指す派生クラス参照を作成できますか
- 14. 親クラスの子メソッドを子クラスのオブジェクトを参照している親クラスの参照で呼び出す必要があるのはなぜですか?
- 15. はSystem.InputStreamクラスのオブジェクト参照ですか?
- 16. は、基本クラスのオブジェクトを参照するために、派生クラスの変数を作成
- 17. オブジェクトの参照カウントを取得できますか?
- 18. WP7 - 非同期要求/応答を作成するときにオブジェクトの参照が失われる
- 19. PHPクラスPDOオブジェクトを参照する
- 20. IValueConverterでObservableCollectionにPopup.IsOpenをバインドするときにオブジェクト参照が失われる
- 21. オブジェクト参照変数の型が参照するオブジェクトの型と異なるJavaのメカニズムがありますか?
- 22. オブジェクトのfinalとしてフィールドを作成すると、そのオブジェクトのnull参照を参照するスレッドは避けられますか?
- 23. Mongoose:参照オブジェクトを削除するときに配列内の参照オブジェクトをすべて削除する
- 24. C#:他のオブジェクトを参照しないでオブジェクト間の強い参照を作成する
- 25. 参照でクラスにオブジェクトを渡す
- 26. Guice:参照されていないオブジェクトのオブジェクトの作成
- 27. アプリケーション全体で1つのクラスで作成された静的オブジェクトの参照
- 28. オブジェクトのインライン作成で親を参照する方法は?
- 29. オブジェクト、ローカル変数とrvalue参照の作成
- 30. 変数をオブジェクト参照として使用する
私は "alloc"ソースを読んで、オブジェクトにスペースを開くためにメモリ内にしかないことを発見しました。オブジェクトへの参照は何もありませんでしたが、参照カウントのオブジェクトは1 ? –
@Rushtoasktheway、回答が更新されました。 –
あなたが提供するメソッドは、オブジェクトが "retainCount"で使用されたときに実行されるメソッドです。 "retaionCount"メソッドを呼び出さないと、このメソッドは実行されたくないので、 "alloc"メソッドのTimeを呼び出すと、このメソッドが実装されませんでした。 –