NSDictionary и другие классы коллекции на самом деле кластеры классов : несколько конкретных подклассов классов, маскирующихся под интерфейсом одного класса: все они предоставляют одинаковую функциональность (поскольку они являются подклассами одного и того же класса - в случае NSDictionary, это включает три "примитивных методов" -count
, -objectForKey:
и -keyEnumerator
), ноиметь различную внутреннюю работу, чтобы быть эффективной в разных ситуациях, в зависимости от того, как они созданы и какого типа данные они могут хранить.
NSCFDictionary - это просто конкретный подкласс NSDictionary. То есть, ваши NSDictionaries на самом деле могут быть экземплярами NSCFDictionary, но вы должны рассматривать их как экземпляры NSDictionary, потому что это предоставит вам необходимые функции хранения словаря.
<b><i>NSDictionary</b></i> *value = [dict objectForKey:key];
Теперь еще одна причинакод не работает: NSURLProtectionSpace является классом, поэтому вы должны использовать его как указатель,как это:
for (NSURLProtectionSpace *key ...