Я хочу вернуть два массива с помощью настраиваемого метода, возможно ли это в Objective-C?Могу ли я вернуть два массива?
Я попытался это:
-(nsmutablearray*, namutablearray*)someMethod{
return (nsmutablearray*,namutablearray*)
}
Я хочу вернуть два массива с помощью настраиваемого метода, возможно ли это в Objective-C?Могу ли я вернуть два массива?
Я попытался это:
-(nsmutablearray*, namutablearray*)someMethod{
return (nsmutablearray*,namutablearray*)
}
выше использование функции на быстро, но если вы хотите несколько объектов пропуска, вы должен использовать этот код:
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]
}
заставляют вас отвечать в правильных форматах с правильным синтаксисом Array вместо установки неправильного оператора возврата. –
@ NitinGohel .. ваш ответ был прав. Вы удалили свой ответ? – iAnurag
Отличный ответ. Просто нужно преобразовать в swift: func somemethod() -> [AnyObject] { var array1: [AnyObject] = [AnyObject]() var array2: [AnyObject] = [AnyObject]() return [array1, array2] } –
Нет, это невозможно. Вы можете использовать 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
}
Это не сработает, поскольку вы не передали ссылку на массивы. –
Пожалуйста, посмотрите эту строку в коде: [self someMethosWithFirstArray: firstArray AndSecondArray: secondArray]; Здесь ссылка на оба массива передается: –
Нет, вы передаете массив, а не их ссылки, помните, что –
вместо возвращения два массива, вернуть один массив/словарь, содержащим, что два массив –
Либо вы сцепляетесь их внутри одного массива или одного словаря, или вы также можете сделать '- (void) someMethodArray1: (NSMutableArray **) array1 andArray2: (NSMutableArray **) array2' – Larme
Открыто, потому что выбранный дубликат не удаленно близок к этому вопросу. – rmaddy