【问题标题】:How to add objects to an NSArray using for loop?如何使用 for 循环将对象添加到 NSArray?
【发布时间】:2011-10-21 07:20:58
【问题描述】:

我想使用 for 循环将 [NSDecimalNumber numberWithInt:i] 添加到数组中。

它是硬编码的:

 NSArray *customTickLocations = [NSArray arrayWithObjects: [NSDecimalNumber numberWithInt:1],[NSDecimalNumber numberWithInt:2],[NSDecimalNumber numberWithInt:3],[NSDecimalNumber numberWithInt:4],[NSDecimalNumber numberWithInt:5],[NSDecimalNumber numberWithInt:6],[NSDecimalNumber numberWithInt:7],[NSDecimalNumber numberWithInt:8],[NSDecimalNumber numberWithInt:9],[NSDecimalNumber numberWithInt:10],[NSDecimalNumber numberWithInt:11],[NSDecimalNumber numberWithInt:12],nil];

我想要这样,但我只能在这里添加一个对象......

for (int i=0; i<totalImagesOnXaxis; i++)
{
    customTickLocations = [NSArray arrayWithObject:[NSDecimalNumber numberWithInt:i]];
}

请帮我解决这个问题, 提前致谢, 马丹

【问题讨论】:

  • 为什么还需要数组?看起来数组中索引i 处的值始终为i

标签: iphone objective-c ios nsarray


【解决方案1】:

NSArray不可变的。使用可变版本,NSMutableArray

【讨论】:

    【解决方案2】:
    NSMutableArray * customTickLocations = [NSMutableArray new];
    for (int idx = 0; idx < 12; ++idx) {
        [customTickLocations addObject:[NSDecimalNumber numberWithInt:idx]];
    }
    
    ...
    

    【讨论】:

      【解决方案3】:

      您不能在运行时将对象添加到 NSArray。要在运行时添加或删除对象,您必须使用 NSMutableArray。

      NSMutableArray *mutableArray=[[NSMutableArray alloc] init];
      for (int i=0; i<10; i++) {
          [mutableArray addObject:[NSDecimalNumber numberWithInt:i]];
      }
      

      【讨论】:

        【解决方案4】:
        NSMutableArray *customTickLocations = [NSMutableArray array];
        for (int i=0; i<totalImagesOnXaxis; i++)
        {
            [customTickLocations addObject:[NSDecimalNumber numberWithInt:i]];
        }
        

        NSMutableArray 类声明了管理可修改对象数组的对象的编程接口。该类在继承自 NSArray 的基本数组处理行为中添加了插入和删除操作

        NSMutableArray Class Reference

        【讨论】:

          【解决方案5】:
          NSMutableArray *customTickLocations = [[NSMutableArray alloc] init];
          
          for(int i = 0; i<WhateverNoYouWant;i++)
          {
            NSDecimalNumber * x = [NSDecimalNumber numberWithInt:i]
            [customTickLocations addObject:x]
          }
          

          【讨论】:

            【解决方案6】:

            我发现使用这种技术是轻松向 NSArray 添加更多元素的好方法,这就是我来到这个线程时正在寻找的答案,所以我发布它,因为它是一个非常简单的添加。

            如果我想在当前数组中添加一个新数组

            currentArray = [currentArray arrayByAddingObjectsFromArray: newArray]; 
            

            【讨论】:

              【解决方案7】:

              NSArray 像这样添加对象:

              NSArray *arr = @["1","2","3","4"];
              

              我认为NSArray 不能像NSMutableArray 那样addObject。你应该试试:

              NSMutableArray *mulArr = [NSMutableArray new];
              [mulArr addObject:[NSDecimalNumber numberWithInt:number]];
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-03-13
                • 2018-05-19
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-03-17
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多