【问题标题】:Multiple conditions for loop?循环的多个条件?
【发布时间】:2011-07-20 02:44:14
【问题描述】:

我现在有这个代码: 这是iOS

   for(NSDictionary * dict in myMutableArray)
{
    NSString * str = [dict objectForKey:@"MyStringKey"];
    [sheet addButtonWithTitle:str];
}

我还需要一个这样的 for 循环:

NSInteger *count = [myMutableArray count];
for (i = 0; i < count; i++) {
    arrayVar = [myMutableArray objectAtIndex:i];
}

我需要把这些结合起来。我正在向 UISegmentedControl 中插入一个段,同时从一个 for 循环中获取名称,该循环通过数组获取 nsdictionary,它正在检索我将放入 uisegmentedcontrol 的 nsstring。

所以底线是我需要合并这些 for 循环,所以我从第一个 for 循环中获得名称,同时仍然像在第二个 for 循环中一样获得 objectatindex。

我该怎么做?谢谢!

【问题讨论】:

  • monLessonArrayA 和 myMutableArray 是同一个数组吗?否则我不确定你在问什么。
  • 你能用你使用的语言标记这个问题吗?
  • 是的,它们是相同的,将在一秒钟内对其进行编辑。和 iOS

标签: objective-c ios arrays loops


【解决方案1】:

您拥有的第二个版本可以正常工作。 在第一个版本中无法访问索引。 如果您愿意,可以使用更新的语法,它使用块:

  NSArray *array;
  [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSDictionary *dict = (NSDictionary *)obj;
    // whatever else
  }];

块的主要好处是它们可以更有效地使用您设备中的多个内核。

【讨论】:

  • 对不起,这是我第一次使用块。我将如何使您的代码与我的代码一致?在我看来,这一切都像是另一种语言:P
  • array更改为任意数组,将dict更改为存储在该数组中的任意类型对象,idx是索引,如果你想访问所有的可以忽略stop数组中的项目
  • 你意识到arrayVar 在第二个循环 == dict 在第一个循环?
猜你喜欢
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 2011-09-02
  • 2011-11-02
  • 2015-12-16
相关资源
最近更新 更多