Ios 将for/in循环中的变异结果添加到NSArray

Ios 将for/in循环中的变异结果添加到NSArray,ios,objective-c,nsarray,Ios,Objective C,Nsarray,我将一个NSArray的结果进行了变异:我将没有国家代码前缀的电话号码替换为有国家代码前缀的电话号码。然而,在某些情况下,可能存在一个人有两个电话记录的情况。我需要这两个粘在一起,在我添加了前缀之后,我需要把它放入一个数组中,这样我就得到了一个类似这样的数组:@[@[@0634343,@4390493],@[@490209];等等 目前,我正在创建一个如下所示的数组: @[@"0634343", @"4390493", @"490209"]; 这是我正在使用的代码: self.pre

我将一个NSArray的结果进行了变异:我将没有国家代码前缀的电话号码替换为有国家代码前缀的电话号码。然而,在某些情况下,可能存在一个人有两个电话记录的情况。我需要这两个粘在一起,在我添加了前缀之后,我需要把它放入一个数组中,这样我就得到了一个类似这样的数组:@[@[@0634343,@4390493],@[@490209];等等

目前,我正在创建一个如下所示的数组:

@[@"0634343", @"4390493", @"490209"];
这是我正在使用的代码:

     self.prefixSearchNumbers = [NSMutableArray array];

    for (NSArray *phoneNumbers in _phoneSearchResult) {
        NSMutableArray *formattedPhoneNumbers = [NSMutableArray array];
        for (NSString *phoneNumber in phoneNumbers) {
            NSString *firstChar = [phoneNumber substringToIndex:1];
            if (([firstChar isEqualToString:@"0"] && prefix != nil) || (firstChar == 0 && prefix!=nil)) {
               NSString *phoneNumber = [phoneNumber stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:prefix]; // trows warning: varibale 'phoneNumber' is uninitialized when used within its own initialization
                NSLog(@"phoneNumber: %@", phoneNumber); //returns phoneNumber withous prefix in Array;

            }
            [formattedPhoneNumbers addObject:phoneNumber];
            NSLog(@"formattedPhoneNumbers: %@", formattedPhoneNumbers);
        }
        [self.prefixSearchNumbers addObject:formattedPhoneNumbers];
        name = [self.modifiedNameArray objectAtIndex:indexPath.row];
    }

如何使用数组创建数组?

是否尝试按索引克隆对结果进行分组

self.prefixSearchNumbers = [NSMutableArray array];

for (NSArray *phoneNumbers in _phoneSearchResult) {
    NSMutableArray *formattedPhoneNumbers = [NSMutableArray array];
    for (NSString *phoneNumber in phoneNumbers) {
        NSString *firstChar = [phoneNumber substringToIndex:1];
        if (([firstChar isEqualToString:@"0"] && prefix != nil) || (firstChar == 0 && prefix!=nil)) {
            phoneNumber = [phoneNumber stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:prefix];
        }
        [formattedPhoneNumbers addObject:phoneNumber];
    }
    [self.prefixSearchNumbers addObject:formattedPhoneNumbers];
}

例如@+31的字符串将丢失[NSString stringWithFormat:@%@,前缀]。这只是复制字符串的一种昂贵方法,您根本不需要复制它nil@bdv什么是零?为什么它对您不起作用?self.prefixerachnubers返回零。这可能与尚未分配内存的数组有关。现在就弄清楚。前缀也没有添加。@bdv您忘记第一行了吗?self.prefixSearchNumber=[NSMutableArray];不,但我不认为是这样。看,如果我记录phoneNumber,它也会返回nil。一定也与此有关。