我应该将啥作为参数传递给期望 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 作为参数的函数是不是安全?