我有一個關於子類化的問題。在viewDidLoad中的子類被調用後,[super viewDidLoad]被調用,但方法沒有得到執行
我開始我的第一個觀點: 在我的.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;
}
}
移植和beginreceiving順利。 ,然後當我繼承viewAController:
@interface viewBController : viewAController
在我的.m文件:
-(void)viewDidLoad{
[super viewDidLoad];
}
我期待我的子類[viewBController],將顯示所有NSLogs的,因爲林調用超viewDidLoad中。
反而它說:F你! 奧克我明白,我只能綁定一次端口,但我期待一個錯誤消息,這不顯示。
因此,我刪除綁定,然後我得到螺絲你,顯然我不能說當我沒有綁定到一個端口開始接收。如果沒有這兩種方法,它的工作效果很好,但它將所有內容都打印出來。問題: 我應該綁定嗎?我其實只需要聽12345端口,我應該如何實現這個不同?
我應該工作沒有綁定,沒有開始接收?我想我更喜歡有約束力的,所以我不會聽我的所有端口。
爲什麼不能在我不綁定的時候開始接收?
如何顯示錯誤?因爲它沒有打印任何錯誤...
格爾茨
這是一個合理的預期。在viewBController的viewDidLoad中放置一個斷點以查看它是否被調用,如果是,則將其追蹤到viewAController中。 –
你是怎麼打電話給viewBController的?嘗試在viewBController的viewDidLoad中放入一個NSLog /斷點,以查看它是否被調用。 – Martol1ni
我修復了它並更新了我的問題:)。我首先給出的例子確實有效。我現在寫的是真正的問題:)。 – Melkon