【发布时间】:2011-05-24 21:41:42
【问题描述】:
这是一个好奇的问题,而不是一个紧迫的问题。这个问题正在寻找一种更好的方法来执行以下操作,即不使用两个 for 循环。
我有一个NSArray *array 的NSStrings 和一个方法-(BOOL)isGoodString:(NSString *)string。我想在一个随机点跳入数组并找到第一个好的字符串,如有必要,将其环绕在末尾。但是,可能没有好的字符串,所以我也需要知道这一点。这是当前的实现:
-(NSString *)randomGoodString {
int N = [array count]
int start = arc4random() % N;
for (int j=start; j<N ; ++j) {
if isGoodString([array objectAtIndex:j]) {
return [array objectAtIndex:j];
}
}
for (j=0; j<start ; ++j) {
if isGoodString([array objectAtIndex:j]) {
return [array objectAtIndex:j];
}
}
return @"";
}
有什么建议吗?效率会很好,但由于这确实更多是为了好奇,所以在有限时间内工作的任何东西都会很高兴听到。
【问题讨论】:
标签: objective-c arrays search