Objective c 目标C中**的语法

Objective c 目标C中**的语法,objective-c,cocoa-touch,parameters,foundation,nserror,Objective C,Cocoa Touch,Parameters,Foundation,Nserror,简单的问题。下面界面中的双星号是什么意思?它不是一个N错误指针,但是什么 - (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error 它是指向n错误的指针。它被用作一个“out参数”——或者您可能希望将其视为指向NSError实例的指针,因为NSObject实例始终是指针 您可以这样使用它: NSError * outError = nil; << reserve place and a name for the

简单的问题。下面界面中的双星号是什么意思?它不是一个N错误指针,但是什么

- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error

它是指向
n错误的指针。它被用作一个“out参数”——或者您可能希望将其视为指向
NSError
实例的指针,因为
NSObject
实例始终是指针

您可以这样使用它:

NSError * outError = nil; << reserve place and a name for the out parameter

// pass the error so the client may return it to you:
BOOL ret  = [obj checkResourceIsReachableAndReturnError:&outError]; 

if (nil != outError) { << the error was set in checkResourceIsReachableAndReturnError:
  NSLog(@"Error: %@", outError); << log it
}
…
- (BOOL)checkResourceIsReachableAndReturnError:(NSError**)outError
{
  if (self.isThingReachable) {
    // okay - the caller may not be interested in the error, test it:
    if (0 != outError) {
      // they are interested this time!
      *outError = [NSError errorWithBlahBlahBlah];
    }
    return NO;
  }

  return YES;
}

它是指向
n错误的指针。它被用作一个“out参数”——或者您可能希望将其视为指向
NSError
实例的指针,因为
NSObject
实例始终是指针

您可以这样使用它:

NSError * outError = nil; << reserve place and a name for the out parameter

// pass the error so the client may return it to you:
BOOL ret  = [obj checkResourceIsReachableAndReturnError:&outError]; 

if (nil != outError) { << the error was set in checkResourceIsReachableAndReturnError:
  NSLog(@"Error: %@", outError); << log it
}
…
- (BOOL)checkResourceIsReachableAndReturnError:(NSError**)outError
{
  if (self.isThingReachable) {
    // okay - the caller may not be interested in the error, test it:
    if (0 != outError) {
      // they are interested this time!
      *outError = [NSError errorWithBlahBlahBlah];
    }
    return NO;
  }

  return YES;
}

通过发送对
n错误*
的引用来调用它,如下所示:

NSError *myError = NULL;
[foo checkResourceIsReachableAndReturnError:&myError];
if (myError) {
    /* look through info, handle error, etc. */
}

-checkResourceIsReachableAndReturnError:
方法可以修改指针
myError
,包括为新的
NSError
分配空间。这使您可以轻松检查是否存在错误,只需检查
myError
是否为非
NULL
您可以通过发送对
NSError*
的引用来调用它,如下所示:

NSError *myError = NULL;
[foo checkResourceIsReachableAndReturnError:&myError];
if (myError) {
    /* look through info, handle error, etc. */
}
-checkResourceIsReachableAndReturnError:
方法可以修改指针
myError
,包括为新的
NSError
分配空间。这使您可以轻松地检查是否存在错误,只需检查
myError
是否为非
NULL
查看此博客帖子:并特别注意“将指针传递给指针”部分

另外,关于指针的wiki页面有一个关于

的部分,请查看这篇博文:并特别注意“将指针传递给指针”部分

此外,关于指针的wiki页面还有一个关于