サブクラス化について質問です。
最初のビューから始めます: .h ファイルで:
@interface viewAController : UIViewController
私の.mファイルで:
-(void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"Begin view");
udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
NSError *error = nil;
if (![udpSocket bindToPort:12345 error:&error]) //check ff of dit werkt!
{
NSLog(@"F you");
return;
}
NSLog(@"Derde line");
if (![udpSocket beginReceiving:&error])
{
NSLog(@"Screw you!");
return;
}
}
移植と受信開始はうまくいきます。そして、viewAController をサブクラス化すると、次のようになります。
@interface viewBController : viewAController
私の.mファイルで:
-(void)viewDidLoad{
[super viewDidLoad];
}
スーパーviewDidLoadを呼び出しているため、サブクラス[viewBController]がすべてのNSLogを表示することを期待しています。
代わりに、F you! と言っています。ポートに一度しかバインドできないことは理解していますが、エラーメッセージが表示されることを期待していますが、これは表示されません。
したがって、バインドを削除すると、Screw you が表示されます。ポートにバインドしていない場合、受信開始とは言えないようです。これらの 2 つの方法がなくても問題なく動作しますが、親からすべてを出力しています。
質問: バインドする必要がありますか? 実際にはポート 12345 をリッスンするだけでよいのですが、これを別の方法で実装する必要がありますか?
bind や beginreceive を使用せずに作業する必要がありますか? すべてのポートをリッスンしないように、バインディングを好むと思います。
バインドしていないのに受信を開始できないのはなぜですか?
エラーを表示するにはどうすればよいですか?? エラーが出力されていない原因...
挨拶