我有:
NSDictionary* server;
for (server in self.servers)
{
if (<some criterium>)
{
break;
}
}
// If the criterium was never true, I want to use the last item in the
// the array. But turns out that `server` is `nil`.
循环块永远不会改变server
。
servers
是一个NSMutableArray
with 字典,一个在循环期间没有改变的属性。
为什么循环结束后server
有值?nil
是我第一次在循环之后使用这样的变量。没有想太多,我认为它会像(在旧的 C 时代)一样工作:
int i;
for (i = 0; i < n; i++)
{
...
}