-5

non-atomic私はたくさん検索しましたが、パラメータretainの定義の違いしか得られません。copyまだ得られていない正確な説明が欲しい。

例を挙げて説明してください:なぜそれらを使用しているのか、それらがどのように機能するのか、それらの参照カウントの役割は?

4

1 に答える 1

1

nonatomicでは、一部のセッター アクティビティが他のスレッドで実行されている場合、ゲッター/セッターから整数値が返される保証はありません。

したがって、非アトミックはアトミックよりもかなり高速であり、決してスレッドセーフではありません


オブジェクトの参照を維持したい、またはオブジェクトの所有者になりたいという明示的な状態を保持し、割り当てを解除する前にオブジェクトを解放する必要があります。参照カウントを 1 増やします。

-(void)setString:(NSString*)newString{
     
    [newString retain];
     
    [string release];
       
    string = newString;
    
}

元のオブジェクトのコピーを作成すると、使用中に変更されないことが保証されるため、コピーは文字列でよく使用されます。

-(void)setString:(NSString*)newString{
 
      if(string!=newString){
                 
          [string release];
                 
          string = [newString copy];
               
     }
}

オブジェクトの保持カウントを単純にインクリメントしながら、独自の保持カウントを持つ新しいretainオブジェクトを作成します。copy

于 2013-03-11T09:55:27.060 に答える