1

我有一个 NSDictionary 可能会被设置在一个循环中。在循环结束时,我想知道字典是否已定义。这是一个例子:

NSDictionary *myDict;

for (int i=0; i < 100; i++){
    if (thisCondition){
        myDict = [NSDictionary dictionaryWithObjectsAndKeys:etc, nil];
    }
}

if (myDict) {
     [self doSomething];
}

不幸的是,无论 myDict 是否已分配,myDict 的测试每次都通过。尝试将任何方法传递给 myDict,例如 [myDict count],会给出 exc_bad_access,因为它还没有被分配。所以这是一个无人区。

有没有办法做到这一点?我意识到我可以切换到 NSMutableDictionary,定义它,在循环中添加它,然后测试计数,但这不是我的偏好。

4

1 回答 1

3

首先,确保将指针初始化为 nil:

NSDictionary *myDict = nil;

否则,您对有效指针的检查可能不起作用。

于 2011-05-10T17:22:01.900 回答