Herkes nasıl bir dönüştürmek için bana söyleyebilir NSArraybir etmek NSData? Bir NSArray. Onu bir NSInputStream. Bunu yapmak NSArrayiçin bir NSData.
Lütfen bana yardım et, burada sıkışıp kaldım.
Yanıtlar:
NSKeyedArchiver'ı kullanın (Garrett bağlantılarının son cümlesi):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
İçindeki tüm nesnelerin protokole arrayuyması gerektiğini unutmayın NSCoding. Bunlar özel nesnelerse, bu, Kodlama ve Kod Çözme Nesnelerini okumanız gerektiği anlamına gelir .
Bunun okunması oldukça zor bir özellik listesi biçimi oluşturacağını, ancak çok çeşitli nesneleri işleyebileceğini unutmayın. Çok basit bir diziniz varsa (örneğin dizeler), biraz daha basit bir özellik listesi oluşturan NSPropertyListSerialization'ı kullanmak isteyebilirsiniz:
NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
Ayrıca, kablo üzerinde okunabilir olmasını tercih ederseniz, geçirebileceğiniz bir XML format sabiti de vardır.
Biraz ilgili bir notta, NSData'yı NSArray'e nasıl geri dönüştürebileceğinizi aşağıda bulabilirsiniz:
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]
Bunun size yardımcı olup olmayacağından emin değilim, ancak NSMutableArray için NSData'ya bir bağlantı .
Bu kodu kullandım.
NSError *error;
NSMutableData *jsonData = [[NSJSONSerialization dataWithJSONObject:yourDemoArray
options:0 // Pass 0 if you don't care about the readability of the generated string
error:&error] copy];