CFPropertyListCreateDeepCopy не может обработать массив / словарь, содержащий NSNull
По некоторым причинам этот пример кода работает:
NSArray *immutable = @[ @"a", @"b", @"c" ];
NSMutableArray *mutable = (__bridge id)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (__bridge CFArrayRef)immutable, kCFPropertyListMutableContainers);
и этот код производитnil
в результате конвертации:
NSArray *immutable = @[ @"a", [NSNull null], @"c" ];
NSMutableArray *mutable = (__bridge id)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (__bridge CFArrayRef)immutable, kCFPropertyListMutableContainers);
Я пытался найти упоминание оNSNull
не допускается при использовании этой функции. У меня есть подозрение, что это как-то связано с тем, как метод проверяет, является ли свойство изменчивым или нет, но я не могу это подтвердить фактами.
Есть идеи?