1. ホーム
  2. iphone

[解決済み] NSArrayをNSDataに変換する方法は?

2023-06-05 11:06:16

質問

を変換する方法を教えてください。 NSArrayNSData ? 私は NSArray . それを NSInputStream . これを実現するためには NSArrayNSData .

助けてください、ここで行き詰ってしまいました。

どのように解決するのですか?

NSKeyedArchiver を使用します(Garrett のリンク先の記事の最後の文です)。

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];

の中のすべてのオブジェクトは array に適合していなければなりません。 NSCoding プロトコルに準拠する必要があります。もしこれらがカスタムオブジェクトであるなら、それはつまり、あなたが オブジェクトのエンコードとデコード .

これはかなり読みにくいプロパティリスト形式を作成しますが、非常に幅広いオブジェクトを扱うことができることに注意してください。非常に単純な配列(例えば文字列)を持っている場合、もう少し単純なプロパティリストを作成するNSPropertyListSerializationを使用するとよいでしょう。

NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];

ワイヤー上で読めるようにしたい場合は、XML形式の定数を渡すこともできます。