Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

В чём разница между CFDictionary и CFMutableDictionary?

#objective_c #xcode #macos #corefoundation


Здравствуйте, участники форума. Мой вопрос отражён в заголовке. Можно ли выполнить
какое-либо приведение типа, чтобы свести CFMutableDictionary к CFDictionary. Заранее
спасибо за помощь!)))    


Ответы

Ответ 1



Не совсем приведение, но может CFDictionaryCreateCopy подойдет : @function CFDictionaryCreateCopy Creates a new immutable dictionary with the key-value pairs from the given dictionary. Пример: CFMutableDictionaryRef dict = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); ... CFDictionaryRef copy = CFDictionaryCreateCopy(NULL, dict); CFRelease(dict);

Ответ 2



Разглядывание http://www.opensource.apple.com/source/CF/CF-476.14/CFDictionary.h показало, что все эти ...ref типы, по сути, void *. Может, попробовать через такие приведения типа (только позволит ли компилятор?). (Правда, стоит отметить, что mutable реально отличается по крайней мере флагами в дескрипторе хэш-таблицы, так что гарантировать работоспособность, не изучая тщательно код, не получится.)

Комментариев нет:

Отправить комментарий