Bất cứ ai có thể cho tôi biết làm thế nào để chuyển đổi một NSArray thành một NSData? Tôi có một NSArray. Tôi cần gửi nó đến NSInputStream. Để làm điều đó tôi cần phải chuyển đổi NSArray thành một NSData. Xin hãy giúp tôi, tôi bị kẹt ở đây.Làm thế nào để chuyển đổi NSArray sang NSData?
Trả lời
Sử dụng NSKeyedArchiver (đó là câu cuối cùng của bài viết liên kết Garrett):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
Lưu ý rằng tất cả các đối tượng trong array
phải phù hợp với giao thức NSCoding
. Nếu đây là các đối tượng tùy chỉnh, thì điều đó có nghĩa là bạn cần phải đọc lên trên Encoding and Decoding Objects.
Lưu ý rằng điều này sẽ tạo ra một định dạng danh sách thuộc tính khá khó đọc, nhưng có thể xử lý phạm vi đối tượng rất rộng. Nếu bạn có một mảng rất đơn giản (chuỗi chẳng hạn), bạn có thể muốn sử dụng NSPropertyListSerialization, mà tạo ra một chút danh sách tài sản đơn giản:
NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
Ngoài ra còn có một định dạng XML hằng số mà bạn có thể vượt qua nếu bạn thà nó có thể đọc được trên dây.
Tôi không chắc chắn nếu điều này sẽ giúp bạn, nhưng nó là một liên kết cho một NSMutableArray to NSData.
Cảm ơn bạn đã trả lời nhanh chóng , tôi đã kiểm tra trước khi didnt giúp đỡ nhiều. – satish
Trên một lưu ý phần nào liên quan, dưới đây là cách bạn có thể chuyển đổi các NSData lại một NSArray:
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]
Đảm bảo rằng đó là NSKeyedUnarchiver chứ không phải NSKeyedArchiver. Có thể là một sai lầm dễ dàng khi thực hiện khi sử dụng tính năng tự động hoàn tất. – Sean
Câu trả lời này, cùng với câu trả lời đã chọn từ trên phải đủ để lưu trữ/hủy lưu trữ bất kỳ đối tượng tương thích nào đến/từ NSData –
Bạn có thể làm this-
NSArray *array= [NSArray array];
NSData *dataArray = [NSKeyedArchiver archivedDataWithRootObject:array];
tôi đã sử dụng mã này.
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];
Trong iOS 9 + sử dụng này xin vui lòng:
NSArray *array = [[NSArray alloc] init];
NSData *data = [NSPropertyListSerialization dataWithPropertyList:array format:NSPropertyListBinaryFormat_v1_0 options:0 error:nil];
Các phiên bản cũ của này đã bị phản đối trong iOS 8.
Swift:
let data = NSKeyedArchiver.archivedData(withRootObject: jsonArray)
print(data)
- 1. Làm thế nào để chuyển đổi dispatch_data_t sang NSData?
- 2. Làm thế nào để chuyển đổi CFArrayRef sang NSArray?
- 3. Chuyển đổi NSData sang NSDictionary
- 4. Array của enums - chuyển đổi sang NSArray
- 5. Làm thế nào để chuyển đổi NSData thành NSString?
- 6. Làm thế nào để chuyển đổi CFDataRef thành NSData?
- 7. Làm thế nào để chuyển đổi CMSampleBufferRef thành NSData
- 8. Làm thế nào để chuyển đổi NSArray để NSMutableArray
- 9. __NSArrayI và __NSArrayM là gì? Làm thế nào để chuyển đổi sang NSArray?
- 10. Làm thế nào để chuyển đổi NSArray thành NSString
- 11. Làm cách nào để chuyển đổi NSString thành NSData?
- 12. Obj-C Làm thế nào để chuyển đổi NSData thành một mảng ints?
- 13. Làm thế nào để chuyển đổi NSUrl sang NSString?
- 14. Làm cách nào để chuyển đổi UIImage sang NSData hoặc CFDataRef?
- 15. Chuyển đổi NSData để int
- 16. Làm thế nào để chuyển đổi NSData thành CGDataProviderRef trên iphone sdk?
- 17. Làm thế nào để chuyển đổi giá trị NSData để UIImage
- 18. Chuyển đổi NSData thành JSON
- 19. Làm thế nào để chuyển đổi char * sang std :: vector?
- 20. Làm thế nào để chuyển đổi nsstring sang cString?
- 21. Làm thế nào để chuyển đổi ISO8859-15 sang UTF8?
- 22. làm thế nào để chuyển đổi IEnumerable sang IObservable?
- 23. Làm thế nào để chuyển đổi CSV sang Excel?
- 24. làm thế nào để chuyển đổi nsstring sang uicolor?
- 25. Làm thế nào để chuyển đổi BigInteger sang BigDecimal?
- 26. Làm thế nào để chuyển đổi CGFontRef sang UIFont?
- 27. Làm thế nào để chuyển đổi typedef enum sang NSNumber?
- 28. Làm thế nào để chuyển đổi chm sang pdf
- 29. Làm thế nào để chuyển đổi HTML sang XHTML?
- 30. Làm thế nào để chuyển đổi Double.POSITIVE_INFINITY sang BigDecimal?
+1 để có câu trả lời hay nhất và cảm ơn rất nhiều. – Shivaay