2013-07-19 97 views
0

我有一个自定义的分段控件,您可以选择多个段并将选定的索引保存到数组中。我想要做的是为每个int我想获得titleForSegmentAtIndex并把标题放入一个数组或字符串,但我努力设置正确的循环。将整数转换为titlesForSegmentAtIndex

这是我现在所拥有的:

NSLog(@"%@", array); 

打印:

(
    0, 
    1, 
    4 
) 

这里是我的数组:

NSMutableArray *array = [NSMutableArray array]; 
[self.type.selectedSegmentIndexes enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) { 
    [array addObject:@(idx)]; 
}]; 

而且我想我需要使用[segmentControl titleForSegmentAtIndex:int] 但不知道如何将它合并到循环中。

+3

你不能有一个NSArray ints,你只能有NSNumbers –

回答

1

您需要创建一个NSMutableArray并在for ... in循环中添加标题。

NSMutableArray *titles = [NSMutableArray array]; 
for (NSNumber *index in array) { 
    [titles addObject:[segmentedControl titleForSegmentAtIndex:index.integerValue]]; 
} 

你也可以使用一个普通的老for循环,但for ... in是更清洁,更快速。

+0

我得到预期';'在'for'语句说明符中,当我这样做时。我是否必须在这个例子中定义int? – BluGeni

+0

@BluGeni对不起,愚蠢的错误。现在试试。 – gtmtg

+0

@BluGeni实际上,这也不起作用...索引存储在数组中的是什么类型?将整数存储在NSArray中是不可能的,所以它们不能是int的。 – gtmtg