2014-12-13 7 views
-3

У меня есть 3 NSArrays, каждый из 6 объектов:Объединение NSArrays создать новый массив с объектами

NSArray *A [Joe, John, Jay, Jason, Jonah, Jeremiah]; 
NSArray *B [Doe, Smith, Scott, Jackson, Johnson, Lewis]; 
NSArray *C [1,2,3,4,5,6]; 

Моя модель:

@interface Person : NSObject 

@property NSString *firstName; 
@property NSString *lastName; 
@property NSString *number; 

@end 

Мне нужно создать далее массив, в котором каждый человек объект имеет имя firstName, lastName, number.

NSArray *D = [0]Joe, Doe, 1 
      [1]John, Smith, 2 
      [2]Jay.Scott,3 
      [3]Jason, Jackson, 4 
      [4]Jonah, Johnson, 5 
      [5]Jeremiah. Lewis, 6 

Как это сделать?

+4

Вместо «слияние массивов» вы должны создать пользовательский класс (назову его 'Person'), который обладает свойствами, которые держат ПгвЬЫат, LastName и номер. –

+0

И если я хочу создать объекты человека, извлекая значения из firstNameArray, lastNameArray и numberArray? –

ответ

3

Вы можете сделать что-то вроде следующего: (На стороне записки, пожалуйста, объявить класс свойство с надлежащими атрибутами)

NSArray *A = @[@"Joe", @"John", @"Jay", @"Jason", @"Jonah", @"Jeremiah"]; 
NSArray *B = @[@"Doe", @"Smith", @"Scott", @"Jackson", @"Johnson", @"Lewis"]; 
NSArray *C = @[@1, @2, @3, @4, @5, @6]; 

NSMutableArray *D = [[NSMutableArray alloc] initWithCapacity:A.count]; 

for (int i=0; i < A.count; i++) 
{ 
    Person *p = [[Person alloc] init]; 
    p.firstName = [A objectAtIndex:i]; 
    p.lastName = [B objectAtIndex:i]; 
    p.number = [C objectAtIndex:i]; 

    [D addObject:d]; 
} 

Позвольте мне знать, как она идет.

-1

Попробуйте использовать enumerateObjectsUsingBlock для массива: -

NSArray *A = @[@"Joe", @"John", @"Jay", @"Jason", @"Jonah", @"Jeremiah"]; 
NSArray *B = @[@"Doe", @"Smith", @"Scott", @"Jackson", @"Johnson", @"Lewis"]; 
NSArray *C = @[@1, @2, @3, @4, @5, @6]; 

NSMutableArray *mutArr=[NSMutableArray array]; 
[A enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
Person *p=[[Person alloc]init]; 
    p.firstName=A[idx]; 
    p.lastName=B[idx]; 
    p.number=C[idx]; 
    [mutArr addObject:p]; 
}]; 
NSLog(@"person=%@",mutArr); 
+0

Спасибо, пожалуйста, ознакомьтесь с обновленным. –

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