在 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
}
这每次都会创建一个新数组。
我有一个奇怪的问题,因为 "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
}
这每次都会创建一个新数组。