2009-10-26 55 views
1

我一直在爲一款新遊戲創建一個點對點連接,它不使用對等選擇器。然而,我不知道該如何放置在這裏:我該如何將參數傳遞給期望NSError **的方法?

- (void)session:(GKSession *)session didReceiveConnectionRequestFromPeer:(NSString *)peerID { 
    NSLog(@"I GOTS A CONNECTION REQUEST"); 
    if(connected == YES) { 
     //deny all requests 
    } 
    else if(connected == NO) { 
     [session acceptConnectionFromPeer:peerID error:???]; 
    } 
} 

我應該把問號放在哪裏?該文件說NSError **。

回答

7

這是一個指向NSError *,那麼:

NSError* error=nil; 
[session acceptConnectionFromPeer:peerID error:&error]; 
+0

這擺脫了一個錯誤。但是,如果我想構造一個錯誤出現,我應該怎樣把它放在那裏。 – 2009-10-26 14:02:03

+0

不幸的是,UIKit缺少AppKit的presentError:方法,所以你一直在自己提出錯誤。 快速簡便的方法是使用UIAlertView - 由您決定標題和消息,但您可以使用 - [NSError localizedDescription] – 2009-10-26 14:10:10

+0

'-acceptConnectionFromPeer:error:'assign a autoreleased'NSError 「指針。你可以檢查if(error){printf(「ERROR」)是否有錯誤。 }' – 2009-10-26 14:25:44

0

如果沒有錯誤設置error爲零。

error是傳達給你的應用程序的休息方式,爲什麼的連接 beeing成立。

在你的例子中,滾動你自己的NSError,說明你的應用程序不接受連接,因爲它已經連接到客戶端。

請參閱iPhone的開發中心文檔NSError以瞭解如何填充它。

+0

你不能從返回類型爲'void'的方法返回'nil'(或任何東西)。 – 2009-10-26 19:35:15

相關問題