Tôi phải chuyển đổi đối tượng NSDictionary
thành NSData
và tiếp tục tôi phải nhận được cùng một đối tượng NSDictionary
ngoài đối tượng NSData
. Làm thế nào tôi nên đi về nó?chuyển đổi đối tượng NSDictionary thành đối tượng NSData và ngược lại
16
A
Trả lời
32
sử dụng NSKeyedArchiver
Để chuyển đổi NSDictionary Để NSData
NSMutableData *data = [[NSMutableData alloc]init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[archiver encodeObject:YOURDICTIONARY forKey: YOURDATAKEY];
archiver finishEncoding];
[data writeToFile:YOURFILEPATH atomically:YES];
[data release];
[archiver release];
Để có được NSDictionary trở về từ lưu trữ NSData
NSData *data = [[NSMutableData alloc]initWithContentsOfFile:YOURFILEPATH];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
YOURDICTIONARY = [unarchiver decodeObjectForKey: YOURDATAKEY];
[unarchiver finishDecoding];
[unarchiver release];
[data release];
2
Một phiên bản đơn giản hơn nhiều câu trả lời của Robert:
[NSKeyedArchiver archiveRootObject:YOURDICTIONARY toFile:YOURFILEPATH];
Và, tương ứng:
YOURDICTIONARY = [NSKeyedUnarchiver unarchiveObjectWithFile:YOURFILEPATH];
Hoặc để trả lời những câu hỏi như thiết lập ban đầu, mà không imputing một tập tin vào điều:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:YOURDICTIONARY];
...
YOURDICTIONARY = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Đó là tất cả các phương pháp nhà máy do đó, nó cùng mã có hoặc không có ARC; các phương pháp được sử dụng đã có sẵn từ OS X v10.2 và trên iOS kể từ ngày đầu tiên.
Các vấn đề liên quan
- 1. Chuyển đổi NSData sang NSDictionary
- 2. Chuyển đổi NSString thành NSData và ngược lại
- 3. Chuyển đổi NSData thành JSON
- 4. Chia đối tượng NSData thành các đối tượng NSData khác có kích thước nhất định
- 5. Chuyển đổi đối tượng XmlDocument thành đối tượng XmlNode - C#?
- 6. Chuyển đổi một unixtime thành đối tượng datetime và ngược lại (cặp hàm chuyển đổi thời gian là nghịch đảo)
- 7. kết hợp các đối tượng nsdata vào đối tượng nsmutabledata
- 8. Chuyển đổi chuỗi thành đối tượng JSON
- 9. Powershell: Chuyển đổi đối tượng thành chuỗi
- 10. Chuyển đổi chuỗi thành đối tượng datetime.time
- 11. Chuyển đổi đối tượng thành enum C#
- 12. Chuyển đổi đối tượng time_t thành NSDate?
- 13. chuyển đổi đối tượng Ngày thành TimeWithZone
- 14. Chuyển đổi NSObject thành NSData
- 15. C# - Làm thế nào để chuyển đổi đối tượng thành IntPtr và quay lại?
- 16. Chuyển đổi NSArray thành NSDictionary
- 17. Mẫu chuyển đổi đối tượng
- 18. R: sắp xếp lại các đối tượng thành tập tin văn bản và ngược lại
- 19. Đối tượng yếu trong một NSDictionary?
- 20. Có cách nào để chuyển đổi đối tượng Ember thành đối tượng javascript đơn giản không?
- 21. Java: đối tượng thành byte [] và byte [] để chuyển đổi đối tượng (đối với Nội các Tokyo)
- 22. chuyển đổi đối tượng DateTime của Net thành đối tượng Ngày Javascript
- 23. Chuyển đổi đối tượng BaseClass thành đối tượng SubClass theo cách tự động?
- 24. Cách chuyển đổi chuỗi thành NSData
- 25. Làm thế nào để chuyển đổi đối tượng String thành đối tượng Boolean?
- 26. Làm thế nào để chuyển đổi một đối tượng String thành một đối tượng Hash?
- 27. Cách chính xác đối tượng chuyển đổi/đối tượng Java thành Double
- 28. Chuyển đổi một django ValuesQuerySet thành đối tượng json
- 29. Đối tượng JSON thành chuỗi
- 30. Javascript chuyển đổi giây thành đối tượng ngày