iphone - NSMutableArray addObject 覆盖数据

标签 iphone objective-c ios nsmutablearray

我正在向 NSMutableArray 添加对象“m”,如下所示:

    [m setObject:a forKey:@"a"];
    [m setObject:b forKey:@"b"];
    [m setObject:c forKey:@"c"];
    [m setObject:d forKey:@"d"];

    [myArray addObject:m];

    [m release];

对于一个对象它工作正常,但是当添加另一个对象时,myArray 中的所有对象都会重复相同的值。

如何避免这种情况?

请帮忙。

谢谢。

最佳答案

您需要在每次填充和插入时创建一个单独的 NSMUtablearray 实例,否则您会重复使用同一个实例,因此只有它的最后状态出现在每个位置数组。

NSMutableArray *myArray = [NSMutableArray array];
for (int i = 0 ; i != 10 ; i++) {
    NSMutableDictionary *m = [NSMutableDictionary dictionary];
    // Presumably, this part is done differently on each iteration
    [m setObject:a forKey:@"a"];
    [m setObject:b forKey:@"b"];
    [m setObject:c forKey:@"c"];
    [m setObject:d forKey:@"d"];
    [myArray addObject:m];
}

关于iphone - NSMutableArray addObject 覆盖数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10628478/

相关文章:

iphone - SQLite查询使用SQLite的“like”子句查找相似的单词

ios - 自动布局问题

ios - 在 Restkit 中映射 JSON 很困难

ios - 如何将 UIView 的大小调整为特定的高度和宽度(包括其 subview )?

iphone - Titanium 没有错误吗?它是否与开发 iOS 应用程序一样兼容 XCode 和 Objective-c?

iphone - MPMoviePlayerController - 控件未对齐

iphone - SearchBar TintColor 未应用正确

ios - Webservice 方法未获取第一次单击的值

ios - "Open with..."问题,如果应用程序尚未打开

iphone - 如何等待 webViewDidFinishLoad 完成