2014-12-13 41 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'),有持有名字,姓氏和電話號碼屬性。 – 2014-12-13 12:57:40

+0

如果我想通過從firstNameArray,lastNameArray和numberArray中獲取值來創建person對象? – 2014-12-13 13:06:03

回答

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

謝謝,請參考最新的一個。 – 2014-12-14 08:07:47