5

何らかの理由で、このサンプルコードは機能します。

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この関数を使用するときに許可されないという言及を見つけようとしました。プロパティが可変かどうかをメソッドが調べる方法と関係があるのではないかと疑っていますが、事実でそれを裏付けることはできません。

何か案は?

4

1 に答える 1

6

Apple 開発者フォーラムの親切な人々が問題を指摘したように、Property List Structure は、処理できるデータ型についてかなり厳密であるということです。NSNullは許可されたものの 1 つではありません。

アップルドキュメントから:

プロパティ リストは、Core Foundation の基本的な型CFStringCFNumberある 、 、CFBooleanCFDate、およびから構築されますCFData

于 2012-09-12T19:38:57.253 に答える