Qualcuno può dirmi come convertire un NSArray in un NSData? Ho un NSArray. Devo inviarlo a un NSInputStream. Per farlo ho bisogno di convertire NSArray in un NSData. Per favore aiutami, sono bloccato qui.Come convertire NSArray in NSData?
risposta
Usa NSKeyedArchiver (che è l'ultima frase del post link Garrett):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
Si ricorda che tutti gli oggetti in array
devono essere conformi al protocollo NSCoding
. Se si tratta di oggetti personalizzati, significa che è necessario leggere su Encoding and Decoding Objects.
Si noti che questo creerà un formato elenco di proprietà abbastanza difficile da leggere, ma può gestire una gamma molto ampia di oggetti. Se si dispone di un semplice array (stringhe per esempio), si consiglia di utilizzare NSPropertyListSerialization, che crea un po 'elenco delle proprietà più semplice:
NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
C'è anche un formato XML costante si può passare se si preferisce si essere leggibile sul filo.
Non sono sicuro che questo possa essere d'aiuto, ma è un collegamento per uno NSMutableArray to NSData.
Grazie per la rapida risposta , ho controllato che prima non aiutava molto. – satish
In una nota correlata in qualche modo, ecco come si potrebbe convertire il NSData di nuovo ad un NSArray:
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]
Assicurarsi che sia NSKeyedUnarchiver e non NSKeyedArchiver. Può essere un errore facile da fare quando si utilizza il completamento automatico. – Sean
Questa risposta, abbinata alla risposta scelta dall'alto, dovrebbe essere sufficiente per archiviare/annullare l'archiviazione di qualsiasi oggetto compatibile da/verso NSData –
Si può fare questo-
NSArray *array= [NSArray array];
NSData *dataArray = [NSKeyedArchiver archivedDataWithRootObject:array];
Ho usato questo codice.
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];
In iOS 9+ utilizzare questo per favore:
NSArray *array = [[NSArray alloc] init];
NSData *data = [NSPropertyListSerialization dataWithPropertyList:array format:NSPropertyListBinaryFormat_v1_0 options:0 error:nil];
La versione precedente di questo è stata sconsigliata a iOS 8.
Swift:
let data = NSKeyedArchiver.archivedData(withRootObject: jsonArray)
print(data)
- 1. Come convertire CMSampleBufferRef in NSData
- 2. Come convertire NSData in NSString?
- 3. Come convertire NSUUID in NSData
- 4. Come convertire CFArrayRef in NSArray?
- 5. Come convertire NSArray in NSString
- 6. Obj-C Come convertire NSData in una matrice di ints?
- 7. Come convertire NSArray a NSMutableArray
- 8. convertire std: vector in NSArray
- 9. Come convertire il valore NSData a UIImage
- 10. Array di enumerazioni - convertire NSArray
- 11. Convertire NSArray a NSMutableArray Swift
- 12. Come convertire la matrice di stringhe in NSData, NSData in Array di stringhe?
- 13. Come convertire NSData in array di byte in iPhone?
- 14. Converti JSON in NSArray
- 15. Come convertire AVAsset in NSData o salvarlo nel file manager
- 16. convertire NSData Lunghezza da byte mega
- 17. Che cos'è __NSArrayI e __NSArrayM? Come convertire in NSArray?
- 18. Come convertire una stringa JSON in un NSArray?
- 19. Converti nsdictionary in nsdata
- 20. Conversione di NSData in base64
- 21. Come si converte NSString in NSData?
- 22. Conversione di NSData in NSDictionary
- 23. Converti immagine GIF in NSData
- 24. Come impacchettare struct in NSData?
- 25. Come utilizzare NSArray dell'oggetto NSArray nell'obiettivo c?
- 26. Come convertire NSDictionary in NSData come plist (senza salvare il dizionario)
- 27. Inserisci PDF in NSData
- 28. Stampa NSData in Swift?
- 29. Byte Array to NSData
- 30. Memorizzazione di NSArray in UIPasteboard
+1 per la migliore risposta e grazie mille. – Shivaay