我在Java工作5年后开始学习Objective-C,并且不了解它的一些构造。这个Some_Object **是什么意思?例如,在此处的方法定义中:
- (NSString *)checkLastUpdate:(NSUInteger)loggedId
returnMsgs:(NSMutableArray **)returnMsgs
{
....
if (returnMsgs)
{
*returnMsgs = NewMsgs;
}
}
是指针指针还是什么?使用它的原因是什么?
答案 0 :(得分:5)
它的 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
答案 1 :(得分:2)
NSMutableArray **表示一个容器,它可以保存包含NSMutableArray的引用的地址,例如。
NSMutableArray * obj1; //obj1 can store reference of a mutable array
NSMutableArray ** obj2; // can contain address of obj1 that can store reference of a mutable array
您可以在最重要的场景中使用它
答案 2 :(得分:0)
这里的函数是将双指针NSMutableArray作为输出参数,并期望NSMutableArray实例将初始化为nil
我认为以下是在这里使用双指针的用例,
-(void)functionName{
NSMutableArray *pArray = nil;
NSString *update = [self checkLastUpdate:[self getLoggId] returnMsgs:&pArray ];
}