我想在上下文中添加N个循环:
if (dataArr[i].title.toLowerCase().contains(arrival.toLowerCase())){
我找到了here之类的解决方案,但不了解如何将其转换为Objective-C
答案 0 :(得分:0)
猜猜 - 但也许会有所帮助。
在你写的标题中:
可变计数
然后在问题中:
我想在上下文中添加N个循环
最后编写代码:
for (NSInteger i=0; i<someCount; i++)
您是否可能会询问for
循环条件中文字值与变量的使用情况?
代码片段:
i < someCount
是一个表达式,它在每次迭代到循环之前进行评估,以确定是否应该进行迭代。在执行整个循环之前,它不会以任何方式“预先评估”。
如果你写:
i < 42
然后条件将始终测试i
的当前值小于42
并执行迭代(如果是)。所以限制是常量。你也可以这样写:
i < j
然后限制是变量 - 对您的问题的一种可能解释。该条件将评估i
的当前值是否小于j
的当前值。
然而,如果j
的值在迭代期间发生变化,那么条件中使用的值也会发生变化 - 您有一个“变量”限制 - 对您的问题的不同可能解释,在这种情况下而不是从变量中获得的限制 - 如在编程语言构造中 - 限制本身是变量 - 就像它在变化中一样。这也是有效的,但你必须小心循环终止,例如:
NSInteger j = 1;
for( NSInteger i = 0; i < j, i++)
{
j++;
}
会继续前进(直到溢出和环绕发生!)。
HTH
答案 1 :(得分:0)
这是递归的替代品,希望它有助于:
首先,您需要在@interface
@property int a; //a variable for your loops do not edit its value other than what I say
@property int numberOfLoops;//the number of loops to nest inside each other
@property int someCount;//how many times each loop should repeat
现在在@implementation
:
-(void)repeatloops
{
for (int i = 0; i < self.someCount; i++){
if (self.a < self.numberOfLoops){
self.a += 1;
[self repeatloops];
}else{
//do something for this loop, i'm gonna call this "sector a"
//this would be the code you want to put inside each 'for' statement
}
}
self.a -= 1;
}
现在调用循环:
self.a = 0; //don't forget this
self.numberOfLoops = N; //N was your example variable, don't forget to change this
self.someCount = X;//X is also an example variable, you can change it to a constant etc.
[self repeatloops];//call the method
这会使某些事情呈指数级循环。例如:
self.numberOfLoops = 5
,self.someCount = 1
,NSLog("a"); in "sector a"
- &gt;结果是(self.numberOfLoops
^ self.someCount
) - 您的日志窗口中有很多“a”,不会使self.someCount
变大!!