Определен ли NSDictionary? - PullRequest
1 голос
/ 10 мая 2011

У меня есть 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, определить его, добавить к нему в цикле и проверить счетчик, но это не мое предпочтение.

1 Ответ

3 голосов
/ 10 мая 2011

Во-первых, убедитесь, что вы инициализируете указатель на ноль:

NSDictionary *myDict = nil;

в противном случае проверка правильности указателя может не сработать.

...