我应该将啥作为参数传递给期望 NSError** 的方法?

Posted

技术标签:

【中文标题】我应该将啥作为参数传递给期望 NSError** 的方法?【英文标题】:What should I pass as parameter to a method expecting a NSError**?我应该将什么作为参数传递给期望 NSError** 的方法? 【发布时间】:2009-10-26 13:56:21 【问题描述】:

我一直在为不使用对等选择器的新游戏创建点对点连接。然而,我对在这里放什么感到目瞪口呆:

- (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 **。

【问题讨论】:

【参考方案1】:

它是一个指向 NSError* 的指针,所以:

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

【讨论】:

消除了一个错误。但是,如果我想构造一个错误,我应该在里面放什么。 遗憾的是,UIKit 缺少 AppKit 的 presentError: 方法,因此您只能自己呈现错误。快速简便的方法是使用 UIAlertView - 由您决定标题和消息,尽管您可以使用 -[NSError localDescription] -acceptConnectionFromPeer: error: 将自动释放的NSError 分配给指针。你可以检查if (error) printf("ERROR"); 是否有错误【参考方案2】:

如果没有错误设置error为nil。

error 是一种向应用程序的其余部分传达为什么连接已建立的方法。

在您的示例中,滚动您自己的 NSError 说明您的应用程序不接受连接,因为它已经连接到客户端。

查看NSError 的 iPhone 开发中心文档,了解如何填充它。

【讨论】:

你不能从返回类型为 void 的方法返回 nil(或任何东西,真的)。

以上是关于我应该将啥作为参数传递给期望 NSError** 的方法?的主要内容,如果未能解决你的问题,请参考以下文章

导入 tkinter 文件时,我应该将啥参数传递给“root”?

我应该将啥对象传递给需要 Void 的函数!在参数中? (科特林)

将 _bstr_t 对象传递给期望 BSTR 作为参数的函数是不是安全?

将超类作为参数传递给期望子类的方法

如何将子类作为期望基类的函数的参数传递,然后将该对象传递给指向这些抽象类对象的指针向量?

我应该将啥类型添加到作为参数接收的类构造函数中?