2011-05-10 70 views
1

我有一个NSDictionary可能会被设置在一个循环内。在循环结束时,我想查明字典是否已经定义。这里有一个例子:NSDictionary是否定义?

NSDictionary *myDict; 

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

if (myDict) { 
    [self doSomething]; 
} 

不幸的是,myDict的测试通过每一次,myDict是否已经alloc'ed与否。尝试将任何方法传递给myDict,如[myDict count],都会给exc_bad_access,因为它没有被分配。所以这是一个无人地带。

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

回答

3

首先,确保你初始化指针为零:

NSDictionary *myDict = nil; 

,否则,你的一个有效的指针检查可能无法正常工作。

+0

s/may/will /,但是+1 – 2011-05-10 17:23:36

+0

优秀。这很好! – 2011-05-10 17:25:58

+1

@Jakob博格为什么不*可能*?在2^64个案例中,有1个**将**工作。 – 2011-05-10 17:26:11

相关问题