2012-05-14 100 views
0

我有一個關於子類化的問題。在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端口,我應該如何實現這個不同?

我應該工作沒有綁定,沒有開始接收?我想我更喜歡有約束力的,所以我不會聽我的所有端口。

爲什麼不能在我不綁定的時候開始接收?

如何顯示錯誤?因爲它沒有打印任何錯誤...

格爾茨

+0

這是一個合理的預期。在viewBController的viewDidLoad中放置一個斷點以查看它是否被調用,如果是,則將其追蹤到viewAController中。 –

+0

你是怎麼打電話給viewBController的?嘗試在viewBController的viewDidLoad中放入一個NSLog /斷點,以查看它是否被調用。 – Martol1ni

+0

我修復了它並更新了我的問題:)。我首先給出的例子確實有效。我現在寫的是真正的問題:)。 – Melkon

回答

0

你在做什麼是right.But我只有一個問題要問你是否已經添加派生視圖控制器的目的在於,一些視圖。 除非你不添加它,否則你不會讓你的超類的didLoad被解僱。 通過將派生視圖的對象添加到SomeView來進行檢查。

+0

我修復了它並更新了我的問題:)。我首先給出的例子確實有效。我現在寫的是真正的問題:)。 – Melkon

0

這是不對的,你正在做的

NSLog("@Hi there!"); 

,你必須使用

NSLog(@"Hi there!"); 

如果這是一個錯字(我希望是)你有你的子類添加到一些地方使用添加子視圖或推動它。

+0

我修復了它並更新了我的問題:)。我首先給出的例子確實有效。我現在寫的是真正的問題:)。 – Melkon

相關問題