11

https://github.com/MugunthKumar/MKNetworkKitのソースコードを読んでいて、これを見ました

    +(void) initialize {

  if(!_sharedNetworkQueue) {
    static dispatch_once_t oncePredicate;
    dispatch_once(&oncePredicate, ^{
      _sharedNetworkQueue = [[NSOperationQueue alloc] init];
      [_sharedNetworkQueue addObserver:[self self] forKeyPath:@"operationCount" options:0 context:NULL];
      [_sharedNetworkQueue setMaxConcurrentOperationCount:6];

    });
  }            
}

ここでの [self self] とはどういう意味ですか?

4

2 に答える 2

10

-selfプロトコルで定義されNSObject たメソッドです。受信者、つまりメッセージの送信先のオブジェクトを返しますself。あなたがそうするなら[a self]、あなたはa戻ってきます、そしてそうです、あなたがそうするなら[self self](またはself.self)、あなたは確かにself戻ってきます。

これは、新しいコンポーネントを追加することになっているが、Cocoa Bindingsのように、オブジェクト全体を監視することを意図しているKey-Valueパスで役立つ場合があります。あなたが投稿したコードにはこれの適用は見られませんがself、リモート/転送されたオブジェクトではなく、プロキシ自体を指すように、プロキシが異なる方法で採用する場合があります。

于 2012-09-21T09:49:29.917 に答える
8

これはと同じですがself、冗長な呼び出しのみです。

[self self] // ---> Same object of self
于 2012-09-21T09:48:51.043 に答える