Objective C 中 ** 的语法
简单的问题。下面界面中的双星号是什么意思?它不是 NSError 指针,但是什么呢?
- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error
Simple question. What is the meaning of the double asterisk in the interface below? It's not an NSError pointer, but what?
- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它是一个指向
NSError
的指针。它用作“输出参数”——或者您可能希望将其视为指向NSError
实例的指针,考虑到NSObject
实例始终是一个指针。您可以这样使用它:
在实现方面,它看起来像这样:
It's a pointer to a pointer to an
NSError
. It's used as an "out parameter" -- or you may want to think of it as a pointer to anNSError
instance, considering anNSObject
instance is always a pointer.You use it like this:
On the implementation side, it looks like this:
您可以通过发送对
NSError*
的引用来调用它,如下所示:-checkResourceIsReachableAndReturnError:
方法可以修改指针myError
,包括分配空间一个新的NSError
。这使您可以通过简单地检查myError
是否为非NULL
来轻松检查是否存在错误。You call it by sending a reference to an
NSError*
, like so:The
-checkResourceIsReachableAndReturnError:
method can modify the pointermyError
, including allocating space for a newNSError
. This allows you to easily check if there was an error, by simply checking ifmyError
is non-NULL
.查看此博客文章:"使用NSError To Great Effect”,并特别注意“将指针传递给指针”部分。
此外,有关指针的 wiki 页面上有一个关于 “多重间接” 的部分
Check out this blog post: "Using NSError To Great Effect" and pay particular attention to the section "Passing Pointers to Pointers."
Also the wiki page on pointers has a section on "Multiple Indirection"