在 iOS 中将一个数组添加到另一个数组

add an array to another array in iOS

我有一个奇怪的问题,因为 "addObject" 正在努力添加一个 NSString 而不是添加一个 NSArray:

    NSMutableString *starCatalogEntryValue = [[NSMutableString alloc] init]; // a single string from a catalog
    NSMutableArray *starCatalogEntryData = [[NSMutableArray alloc] init]; // array of strings
    NSMutableArray *starCatalogData = [[NSMutableArray alloc] init]; // array of arrays

loop i times {
    [starCatalogEntryData removeAllObjects];
    loop j times {
        [starCatalogEntryData addObject:starCatalogEntryValue]; // This works
    }
    [starCatalogData addObject:starCatalogEntryData]; // This does not work
}

实际上,添加数组 starCatalogEntryData 可以但不正确。我最终在 starCatalogData 中得到 i 个条目,但它们都等于 starCatalogEntryData 的最后一个值。

问题是您一遍又一遍地重复使用 startCatalogEntryData。你想要这个:

NSMutableString *starCatalogEntryValue = [[NSMutableString alloc] init]; // a single string from a catalog
NSMutableArray *starCatalogData = [[NSMutableArray alloc] init]; // array of arrays

loop i times {
    NSMutableArray *starCatalogEntryData = [[NSMutableArray alloc] init]; // array of strings
    loop j times {
        [starCatalogEntryData addObject:starCatalogEntryValue]; // This works
    }
    [starCatalogData addObject:starCatalogEntryData]; // This does not work
}

这每次都会创建一个新数组。