5
出於某種原因,此示例代碼工作陣列/詞典: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
。我懷疑它與方法檢查財產是否是可變的有關,但我不能真正支持事實。
任何想法?
您是否知道接受空值的替代方法或解決方法,因爲我們正在使用來自JSON API的數據,該JSON API在某些地方具有'null'? – Sathvik
根據這個源http://www.opensource.apple.com/source/CF/CF-1153.18/CFPropertyList.c(搜索CFPropertyListRef CFPropertyListCreateDeepCopy)這是不可能的。也許嘗試用您的數據集中不太可能遇到的預定義常量替換null? –