objective-c - 合并两个数组,同时保留原始数组顺序

标签 objective-c arrays ios

我正在编写一个从外部源(Twitter)请求数据的应用程序,该源按时间顺序作为有序数组返回:

外部数组

  • 项目A(最新)
  • 项目B
  • 项目C
  • 项目D(最早的)

  • 我将这些项目添加到另一个保留相同顺序的数组中:

    我的数组
  • 项目A(最新)
  • 项目B
  • 项目C
  • 项目D(最早的)

  • 然后,我再次查询外部源并收到另一个新项目数组,看起来像这样:

    新的外部数组
  • 项目E(最新)
  • 项目F
  • 项目G
  • 项目H

  • 我将它们添加到我的数组,并得到这个:

    我的数组
  • 项目A
  • 项目B
  • 项目C
  • 项目D(最早的)
  • 项目E(最新)
  • 项目F
  • 项目G
  • 项目H

  • 问题是外部数组数据按时间顺序进行排序,最初的最新项最初是A,因为进行的更新现在是E。因此您可以看到数组的排序现在是错误的,我需要的是:

    我的数组
  • 项目E(最新)
  • 项目F
  • 项目G
  • 项目H
  • 项目A
  • 项目B
  • 项目C
  • 项目D(最早的)

  • 我的代码当前看起来像这样:
    NSMutableArray *myArray = [[NSMutableArray alloc] init]; 
    ...
    - (void)getDataFromExternalSource:(NSArray *)externalArray
    {
    for(NSDictionary *item in externalArray) {
    
        // Need loop so I can do some extra stuff here with each item object (not shown in this example.)
        [myArray addObject: item];
    }   
    }
    

    最佳答案

    NSArray *newArray = [externalArray arrayByAddingObjectsFromArray:myArray];
    [myArray release];
    myArray = [newArray mutableCopy];
    

    有什么理由不这样做吗?

    关于objective-c - 合并两个数组,同时保留原始数组顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5815695/

    相关文章:

    iphone - 过渡到以编程方式查看 ios

    python - pretty-print (2D 阵列、盒子)

    php - 将数组重构(转置)为唯一键

    ios - 如何根据我的 MKMapView 图片适本地调整缩放级别?

    ios - 带负数的 UIKeyboardTypeDecimalPad

    objective-c - 在 objective-c 中使用渐变设置 NavigationBar 和 TabBar 背景颜色

    objective-c - 带有下划线前缀 : what does this mean? 的合成属性和变量

    iphone - 在 obj-c 中使用正则表达式在字符串中搜索模式

    C++ 缩短 wchar_t 数组

    ios - UITableViewCell 不等于 null