2015-09-18 3 views
2

Я хочу вернуть два массива с помощью настраиваемого метода, возможно ли это в Objective-C?Могу ли я вернуть два массива?

Я попытался это:

-(nsmutablearray*, namutablearray*)someMethod{ 
    return (nsmutablearray*,namutablearray*) 
} 
+0

вместо возвращения два массива, вернуть один массив/словарь, содержащим, что два массив –

+2

Либо вы сцепляетесь их внутри одного массива или одного словаря, или вы также можете сделать '- (void) someMethodArray1: (NSMutableArray **) array1 andArray2: (NSMutableArray **) array2' – Larme

+0

Открыто, потому что выбранный дубликат не удаленно близок к этому вопросу. – rmaddy

ответ

2

выше использование функции на быстро, но если вы хотите несколько объектов пропуска, вы должен использовать этот код:

Objective C:

-(NSArray*)somemethod{ 
    NSMutableArray *array1 = [NSMutableArray new]; 
    NSMutableArray *array2 = [NSMutableArray new]; 
    return @[array1,array2]; 
} 

Свифт:

func somemethod() -> [AnyObject] { 
     var array1 = [AnyObject]() 
     var array2 = [AnyObject]() 
     return [array1, array2] 
    } 
+0

заставляют вас отвечать в правильных форматах с правильным синтаксисом Array вместо установки неправильного оператора возврата. –

+0

@ NitinGohel .. ваш ответ был прав. Вы удалили свой ответ? – iAnurag

+1

Отличный ответ. Просто нужно преобразовать в swift: func somemethod() -> [AnyObject] { var array1: [AnyObject] = [AnyObject]() var array2: [AnyObject] = [AnyObject]() return [array1, array2] } –

-1

enter image description here Нет, это невозможно. Вы можете использовать follwoing кода для достижения тех же вещей:

NSMutableArray *firstArray = [[NSMutableArray alloc] init]; 
NSMutableArray *secondArray = [[NSMutableArray alloc] init]; 

[self someMethosWithFirstArray:firstArray AndSecondArray:secondArray]; 

И использовать метод, как это:

-(void) someMthodWithFirstArray:(NSMutableArray *) firstArray AndSecondArray:(NSMutableArray *) secondArray { 
// update arrays and it will reflect 
} 
+0

Это не сработает, поскольку вы не передали ссылку на массивы. –

+0

Пожалуйста, посмотрите эту строку в коде: [self someMethosWithFirstArray: firstArray AndSecondArray: secondArray]; Здесь ссылка на оба массива передается: –

+0

Нет, вы передаете массив, а не их ссылки, помните, что –

Смежные вопросы