2011-05-10 56 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