【问题标题】:How to print NSArray objects via for statement or enumeration? [duplicate]如何通过 for 语句或枚举打印 NSArray 对象? [复制]
【发布时间】:2012-01-14 05:22:25
【问题描述】:

可能重复:
How do I iterate over an NSArray?

这是我的代码(例如):

NSArray *myArray = [NSArray arrayWithObjects:@"Red", @"Blue", @"Green", nil];

我想通过数组循环打印每个字符串到控制台。

谢谢。

【问题讨论】:

    标签: objective-c cocoa for-loop nsarray


    【解决方案1】:

    最简单的方法就是:

    NSLog(@"%@", myArray);
    

    或者,如果您想使用快速枚举以自己的方式打印每个对象:

    for (NSString *string in myArray) {
        NSLog(@"%@", string);
    }
    

    【讨论】:

      【解决方案2】:

      让我们找出最复杂的方法,好吗?

      NSArray *myArray = [NSArray array];
      id *objects = malloc(sizeof(id) * myArray.count);
      [myArray getObjects:objects range:NSMakeRange(0, myArray.count)];
      
      char **strings = malloc(sizeof(char *) * myArray.count);
      
      for (int i = 0; i < myArray.count; i++)
      {
           strings[i] = [objects[i] UTF8String];
      }
      
      printf("<");
      for (int i = 0; i < myArray.count; i++)
      {
           printf("%s" strings[i]);
           if (i != myArray.count - 1)
               printf(", ");
      }
      printf(">");
      
      free(objects);
      free(strings);
      

      当然,你总是可以这样做:

      NSLog(@"%@", myArray);
      

      【讨论】:

      • 这是如何被接受的?我只是个聪明人
      • 相当令人印象深刻。我错过了一些位移......
      • 或者通过放大镜将太阳光线聚焦到相关的存储单元上,直接在 RAM 芯片上进行位操作
      猜你喜欢
      • 2016-06-19
      • 1970-01-01
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      相关资源
      最近更新 更多