як аб'яднаць дзве змяняныя значэння масіваў у адным змененым масіве?

- (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 = AA, BB, CC, дд ... testArray1 = хх, уу, ZZ, сс ...

я хацеў бы чакаць майго выхаду, як

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

0

7 адказы

Паспрабуйце гэта:

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

    [newArray addObject tmpObject];
    tmpObject=nil;
}
1
дададзена
што выкарыстанне гэтай лініі: - [testArray1 objectAtIndex: я]]
дададзена аўтар Nitin Gohel, крыніца
ооо нармальна гэта мой mistak але я не думаю, што гэта neead Утварэння newArray яны дадаюць першыя і другі масіў, што гэта яго
дададзена аўтар Nitin Gohel, крыніца
Ёсць шмат падобнага метаду для адной задачы правільна ..? так што гэта не азначае, што проста дадаўшы адну зменную NSString робіць іншую рэалізацыю
дададзена аўтар Nitin Gohel, крыніца
прачытаць поўную лінію NSString * tmpObject = [NSString stringWithFormat: @ "% @% @", [testArray objectAtIndex: я], [testArray1 objectAtIndex: я]];
дададзена аўтар BhushanVU, крыніца
дзякуючы цеснай look..variety логік даступных тут @nitin ..see ўсе пяць адказаў ўсіх ёсць розныя падыходы ... і гэта яшчэ не дакладна дубляваць пытанне. 147,721 пытанняў для ios..some падабенства будуць там пытанні, якія паступаюць у будучыні ..
дададзена аўтар BhushanVU, крыніца
Вы маеце рацыю...
дададзена аўтар BhushanVU, крыніца

вы можаце зрабіць нешта накшталт ніжэй ..

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

int count = [testArray count]+[testArray1 count];
for(int i=0;i

дайце мне ведаць, што яна працуе ці няма !!!

1
дададзена
ёсць вы вызначаеце масіў як NSArray або NSMutableArray ??? ..
дададзена аўтар NiravPatel, крыніца
што адбываецца? Вы можаце сказаць мне мой сябар ??
дададзена аўтар NiravPatel, крыніца
Я атрымліваю гэтую памылку «не відаць @interface для" NSMutableArray "заяўляе селектар" AddObject "»
дададзена аўтар Siva, крыніца
Памылка чысціцца. Але не працуе код ...
дададзена аўтар Siva, крыніца
прабачце ... ваш код таксама працуе
дададзена аўтар Siva, крыніца
ўжо я прыняў адзін адказ ... гэта таксама працуе нармальна.
дададзена аўтар Siva, крыніца
 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);

<�Моцны> Выснова:

<�Р> "АА XX", "ВВ ГГ", "CC ZZ" </р>
1
дададзена

аа бб хх, уу, сс ZZ, дд выхад SS:

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

Не трэба ісці на трэці масіў. Вы можаце выкарыстоўваць replaceObjectAtIndex метад NSMutableArray .

Сюды..

    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
дададзена

Каб проста дадаць два масіва:

[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]];
}
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<= array1.count-1) {
            [finalArray addObject:[array1 objectAtIndex:i]];
        }
        if (i <= array2.count-1) {
            [finalArray addObject:[array2 objectAtIndex:i]];
        }
    }
0
дададзена