【问题标题】:How to add object at first index of NSArray如何在 NSArray 的第一个索引处添加对象
【发布时间】:2012-12-13 06:54:38
【问题描述】:

我想在 NSARRAY 的第一个索引处添加 @"ALL ITEMS" 对象。

最初数组有 10 个对象。添加后,数组应该包含 11 个对象。

【问题讨论】:

    标签: ios objective-c nsarray


    【解决方案1】:

    您不能修改NSArray 以进行插入和添加。你需要使用NSMutableArray。如果要在指定索引处插入对象

    [array1 insertObject:@"ALL ITEMS" atIndex:0];

    Swift 2.0

    array1.insertObject("ALL ITEMS", atIndex: 0)
    

    【讨论】:

      【解决方案2】:

      首先,NSArray 在初始化时需要填充。所以如果你想在数组中添加一些对象,那么你必须使用 NSMutableArray。希望下面的代码能给你一些想法和解决方案。

      NSArray *array = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0", nil];
      NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
      [mutableArray addObject:@"ALL ITEMS"];
      [mutableArray addObjectsFromArray:array];
      

      addObject 方法会将对象作为 NSMutableArray 的最后一个元素插入。

      【讨论】:

      • 下面的答案解释了正确的方法。 (stackoverflow.com/a/13854608/309046)。但是,是的,需要使用 NSMutableArray。
      • @Satish:你不需要使用可变数组;它是一个班轮。
      【解决方案3】:

      我知道insertObject有六个答案,一个是创建一个(n) NSMutableArray数组然后调用addObject,但也有这个:

      myArray = [@[@"ALL ITEMS"] arrayByAddingObjectsFromArray:myArray];
      

      不过我也没有介绍过。

      【讨论】:

      • 这个答案没有得到更多支持真是太疯狂了。我发现自己只需要在 NSArray 的第一个索引处添加一个条目,这个答案非常适合这个目的。更不用说,这个答案是多么简单明了。它有点打击你,让你问,我为什么没想到!
      • 是的...我不需要创建 NSMutableArray 并且它只有一行.. 真的很好。
      【解决方案4】:

      看一下 NSMutableArray 类的 insertObject:atIndex: 方法。要在数组的前面添加一个对象,使用 0 作为索引:

      [myMutableArray insertObject:myObject atIndex:0];
      

      【讨论】:

        【解决方案5】:

        NSArray 是不可变数组,您不能在运行时修改它。使用NSMutableArray

        [array insertObject:@"YourObject" atIndex:0];
        

        【讨论】:

          【解决方案6】:

          NSArray 是不可变的,但你可以使用 NSMutableArray 类的 insertObject: 方法

          [array insertObject:@"all items" atIndex:0];
          

          【讨论】:

            【解决方案7】:

            由于您的数组中已经有 10 个对象,并且您需要在索引 11 处添加另一个项目...所以,您必须尝试这个...希望这会有所帮助..

            NSMutableArray *yourArray = [[NSMutableArray alloc] initWithCapacity:11];
            [yourArray insertObject:@"All Items" atIndex:0];
            

            【讨论】:

            • initWithCapacity 不是必需的。这只是一个提示,该数组可能会在某个时候包含 11 个元素,但没有它一切都可以正常工作。 [NSMutableArray 数组] 工作得很好。
            【解决方案8】:

            NSArray 不能动态解决您必须使用 NSMutableArray 的目的。参考以下方法

            - (void)insertObject:(id)anObject atIndex:(NSUInteger)index;
            

            【讨论】:

            • 请注意使用正确格式的答案和问题。当您的意思是 code 时,您仍然使用 quotation
            • 抱歉,Steen,我是 stackoverflow 的新手,仍在试图了解它是如何工作的。
            • 这就是为什么我要通过让您知道来提供帮助。 =)
            • 但是如何从索引 0 开始插入多个/数组。类似于:@[1,2,3,4,5] 我们必须添加 @[0.1, 0.2, 0.3, 0.4]在前一个数组的开头。
            【解决方案9】:

            Apple 文档说 NSMutableArray 方法

             [temp insertObject:@"all" atIndex:0];
            

            【讨论】:

            • 只写一段代码而没有任何进一步的解释并不是一个好的答案。能多写点吗?你能解释一下为什么你的答案很好吗?只需按“编辑按钮”即可添加到您的答案中。
            【解决方案10】:

            斯威夫特 3:

            func addObject(){
                var arrayName:[String] = ["Name1", "Name2", "Name3"]
                arrayName.insert("Name0", at: 0)
                print("---> ",arrayName)
            }
            
            Output:
            ---> ["Name0","Name1", "Name2", "Name3"]
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-07-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-04-16
              • 2011-07-05
              • 1970-01-01
              • 2015-06-04
              相关资源
              最近更新 更多