多くの場合、Xcode のオートコンプリートは、そのクラスのメソッド名をオートコンプリートし、クラスが他のオブジェクトのデリゲートの場合はメソッド名を次のようにオートコンプリートします。
@interface ViewController : UIViewController <UIAlertViewDelegate,
GKPeerPickerControllerDelegate>
ただし、Game Kit のメソッドの場合は、次のようになりますViewController.m
。
- (void) receiveData:(NSData *)data fromPeer:(NSString *)peer
inSession: (GKSession *)session context:(void *)context {
// ...
}
Xcodeのオートコンプリートまたはドキュメントのいずれかによって、デリゲートメソッドの一部ではないようです? デリゲートの一部ではない場合、他のすべてのデリゲート メソッドの動作と異なるのはなぜですか?
更新: すべてのヘッダー ファイルを検索すると:
grep -r receiveData /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
その行を含む唯一のファイルは次のとおりです。
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks/GameKit.framework/Headers/GKSession.h:- (void)setDataReceiveHandler:(id)handler withContext:(void *)context; // SEL = -receiveData:fromPeer:inSession:context:
コメントにしか表示されないので...