2013-05-22 2 views
0
- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 


    NSError *error; 
    json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 
    NSLog(@"json.... %@",json); 


    id jsonObject = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingAllowFragments error:nil]; 

    NSLog(@"jsonObject=%@", jsonObject); 

    NSDictionary *checkArray=[json valueForKey:@"ND"]; 

    NSArray *tel = [checkArray valueForKey:@"FN"]; 


    testArray = [[NSMutableArray alloc]init]; 
    testArray1 = [[NSMutableArray alloc]init]; 

    newsarray = [[NSMutableArray alloc]init]; 


    for (id photo in tel) 
    { 
     if (photo == [NSNull null]) 
     { 
      NSString *test8; 
      test8 = @"empty"; 
      [testArray addObject:test8]; 

     } 
     else 
     { 
      // photo isn't null. It's an array 
      NSArray *innerPhotos = photo; 

      [testArray addObject:photo]; 

     } 

    } 


    NSArray *tel1 = [checkArray valueForKey:@"LN"]; 

    for (id photo1 in tel1) 
    { 
     if (photo1 == [NSNull null]) 
     { 
      NSString *test8; 
      test8 = @"empty"; 
      [testArray1 addObject:test8]; 

     } 
     else 
     { 
      // photo isn't null. It's an array 
      //NSArray *innerPhotos1 = photo1; 

      [testArray1 addObject:photo1]; 

     } 

    } 


    newsarray = [NSMutableArray arrayWithArray:[testArray arrayByAddingObjectsFromArray:testArray1]]; 
    NSLog(@"testArray =%@",newsarray); 

здесь я хочу, чтобы объединить два значения массива "testArray" и "testArray1"Как объединить два изменяемых значения массивов в одном переменном массиве?

мои mutablearray значения

testArray = аа, бб, куб.см, дд ... testArray1 = хх, уу , ZZ, сс ...

я хотел бы ожидать, мой выход, как

аа хх, бб уу, куб.см ZZ, дд сс

ответ

1

Попробуйте это:

for (int i=0;i<[testArray count];i++){ 
    NSString *tmpObject=[NSString stringWithFormat:@"%@ %@", 
          [testArray objectAtIndex:i], 
          [testArray1 objectAtIndex:i]]; 

    [newArray addObject tmpObject]; 
    tmpObject=nil; 
} 
+0

что используется в этой строке: - '[testArray1 objectAtIndex: i]];' –

+0

читать полную строку NSString * tmpObject = [NSString stringWithFormat: @ "% @% @", [testArray objectAtIndex: i], [testArray1 objectAtIndex :я]]; – BhushanVU

+0

ohh ok it my mistak, но я не думаю, что он заново создаёт newArray, который они добавляют сначала во второй массив, это он –

0

Для того, чтобы просто добавить два массива:

[testArray setArray: testArray1]; 

Но если вы хотите желаемый результат:

NSMutableArray *arrFinal=[[NSMutableArray alloc]init]; 

for(int i = 0; i < (testArray.count + testArray1.count); i++) 
{ 
if(i%2 == 0) 
    [arrFinal addobject:[testArray objectAtIndex:i]]; 
else 
    [arrFinal addobject:[testArray1 objectAtIndex:i]]; 
} 
1

вы можете сделать что-то вроде ниже ..

NSMutableArray *aryFinal=[[NSMutableArray alloc]init]; 

int count = [testArray count]+[testArray1 count]; 
for(int i=0;i<count;i++) 
{ 
if(i%2==0) 
    [aryFinal addobject:[testArray objectAtIndex:i]]; 
else 
    [aryFinal addobject:[testArray1 objectAtIndex:i]]; 

} 

дайте мне знать, что он работает или не!!!

+0

я получаю эту ошибку "нет видимых @interface для" nsmutablearray 'объявляет селектор' addobject '" – Siva

+0

, вы определяете свой массив как NSArray или NSMutableArray ??? .. – NiravPatel

+0

Ошибка очистки. Но не работает ваш код ... – Siva

0

аа хх, бб уу, куб.см ZZ, дд выход SS:

int i=-1; 
for(int k =0;k<[testArray1 count];++k) 
{ 
    i=i+2; 
    [testArray insertObject:[testArray1 objectAtIndex:k] atIndex:i]; 
} 
0

Не нужно идти на третий массив. Вы можете использовать метод replaceObjectAtIndexNSMutableArray.

Этот способ ..

NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"aa",@"bb", nil]; 
    NSArray *array2 = [NSArray arrayWithObjects:@"xx",@"yy", nil]; 

    for (int i=0; i<[array1 count];i++) 
     [array1 replaceObjectAtIndex:i withObject:[NSString stringWithFormat:@"%@ %@",array1[i],array2[i]]]; 
0
NSMutableArray *array1,*array2; 
    //////array1 and array2 initialise it with your values 
    NSMutableArray *finalArray = [[NSMutableArray alloc]init] 

    int totalcount = 0; 

    if (array1.count > array2.count) { 
     totalcount = array1.count; 
    } 
    else 
     totalcount = array2.count; 

    for (int i = 0; i<totalcount; i++) { 
     if (i <= array1.count-1) { 
      [finalArray addObject:[array1 objectAtIndex:i]]; 
     } 
     if (i <= array2.count-1) { 
      [finalArray addObject:[array2 objectAtIndex:i]]; 
     } 
    } 
1
NSMutableArray *array1 = [NSMutableArray arrayWithObjects:@"AA",@"BB",@"CC" nil]; 
NSArray *array2 = [NSArray arrayWithObjects:@"XX",@"YY",@"ZZ" nil]; 

    for (int i=0; i<[array1 count];i++) 
     [array1 replaceObjectAtIndex:i 
       withObject:[NSString stringWithFormat:@"%@ %@", 
          array1[i], 
          array2[i]]]; 
    NSLog(@"%@",array1); 

Выход:

"AA XX", "BB YY", "CC ZZ"