Czy ktoś może mi powiedzieć, jak przekonwertować NSArray na NSData? Mam NSArray. Muszę wysłać go do NSInputStream. W tym celu muszę przekonwertować NSArray na NSData. Proszę, pomóż mi, utknąłem tutaj.Jak przekonwertować NSArray na NSData?
Odpowiedz
Zastosowanie NSKeyedArchiver (co jest ostatnie zdanie postu linki Garrett):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
pamiętać, że wszystkie obiekty w array
muszą być zgodne z protokołem NSCoding
. Jeśli są to obiekty niestandardowe, oznacza to, że musisz przeczytać na Encoding and Decoding Objects.
Należy zauważyć, że stworzy to dość trudny do odczytania format listy właściwości, ale może obsłużyć bardzo szeroki zakres obiektów. Jeśli masz bardzo prostą tablicę (łańcuchy na przykład), może chcesz używać NSPropertyListSerialization, który tworzy się nieco prostsze listy właściwość:
NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
Jest też format XML stałe można przejść, jeśli wolisz to być czytelne na drucie.
Nie jestem pewien, czy to ci pomoże, ale jest to link do NSMutableArray to NSData.
Dzięki za szybką odpowiedź , sprawdziłem, że wcześniej nie pomagałem wiele. – satish
na nieco powiązana uwaga, oto jak można przekonwertować NSData powrotem do NSArray:
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]
Upewnij się, że jest to NSKeyedUnarchiver, a nie NSKeyedArchiver. Może być łatwym błędem przy korzystaniu z autouzupełniania. – Sean
Ta odpowiedź, w połączeniu z wybraną odpowiedzią z powyższego, powinna wystarczyć do archiwizowania/cofnięcia archiwizacji dowolnego zgodnego obiektu do/z NSData –
Można zrobić this-
NSArray *array= [NSArray array];
NSData *dataArray = [NSKeyedArchiver archivedDataWithRootObject:array];
użyłem tego kodu.
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];
W iOS 9+ skorzystać z tej Proszę:
NSArray *array = [[NSArray alloc] init];
NSData *data = [NSPropertyListSerialization dataWithPropertyList:array format:NSPropertyListBinaryFormat_v1_0 options:0 error:nil];
Im starsza wersja ta została zaniechana w iOS 8.
SWIFT:
let data = NSKeyedArchiver.archivedData(withRootObject: jsonArray)
print(data)
- 1. Jak przekonwertować NSData na NSString?
- 2. Jak przekonwertować NSUUID na NSData
- 3. Jak przekonwertować dispatch_data_t na NSData?
- 4. Jak przekonwertować CFDataRef na NSData?
- 5. Jak przekonwertować CMSampleBufferRef na NSData
- 6. Jak przekonwertować ciąg na NSData
- 7. iOS: jak przekonwertować wideo PHAsset na NSData
- 8. Jak przekonwertować Int na NSData w Swift?
- 9. Jak przekonwertować ciąg JSON na NSArray?
- 10. Jak przekonwertować NSArray do NSMutableArray
- 11. przekonwertować std: wektor NSArray
- 12. Konwertuj JSON na NSArray
- 13. Jak przekonwertować NSData na CGDataProviderRef na iPhone SDK?
- 14. Konwersja NSData na base64
- 15. Jak przekonwertować NSData na tablicę bajtów w telefonie iPhone?
- 16. Konwersja NSArray na NSDictionary
- 17. Konwertowanie NSData na NSDictionary
- 18. przekonwertować NSData długość od bajtów mega
- 19. Konwersja obiektu NSData na NSString
- 20. Konwertuj NSData na ciąg?
- 21. Jak przekonwertować PFGeoPoint na CLLocation
- 22. Tablica bajtów do NSData
- 23. Jak przekonwertować NSUrl na NSString?
- 24. lepszy sposób przekonwertować NSArray od NSNumbers do tablicy NSStrings
- 25. Konwersja NSString na NSData i vice versa
- 26. Nie można przekonwertować typu wyrażenia "[AnyObject]?" wpisać "NSArray"
- 27. Wydanie na iOS 6 Konwersja MPMediaItem na NSData
- 28. Konwersja NSArray -> JSON -> NSData -> serwer PHP -> reprezentacja JSON
- 29. Konwersja NSData do NSString!
- 30. Jak przekazać NSData jako NSString i odzyskać?
+1 za najlepszą odpowiedź i wielkie dzięki. – Shivaay