参见英文答案 What does having two asterisk ** in Objective-C mean?5个 我在Java经验5年后开始学习Objective-C,并且不了解它的一些构造.这个Some_Object **是什么意思?例如,在此处的方法定义中: - (NSS
我在Java经验5年后开始学习Objective-C,并且不了解它的一些构造.这个Some_Object **是什么意思?例如,在此处的方法定义中:
- (NSString *)checkLastUpdate:(NSUInteger)loggedId returnMsgs:(NSMutableArray **)returnMsgs { .... if (returnMsgs) { *returnMsgs = NewMsgs; } }
它是指针指针还是什么?这是什么原因使用它?
它是 Pointer到指针类型,与C语言相同.除了错误回调之外,我认为这不是一个好的行为.
例如,我们调用一个函数,并在函数失败时需要错误信息:
- (id)handleData:(NSData *)inData error:(NSError **)outError; { if (inData == NULL || [inData length] == 0) { if (outError) *outError = [NSError errorWithDomain:kDataErrorDomain code:-1 userInfo:NULL];
我们可以这样打电话:
NSError *error = NULL; [self handleData:data error:&error]; if (error) { // Handle error