iOS NSObject和NSString互转

场景:希望把对象存储到本地数据库,但数据库只支持字符串类型的数据。

NSObject转NSString:
// response是NSObject
// 归档(NSObject) 转成 NSData
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
archiver.outputFormat = NSPropertyListXMLFormat_v1_0;
// @"root"不能改
[archiver encodeObject:response forKey:@"root"];
[archiver finishEncoding];
// NSData 转成 NSString
NSString *responseStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSString转NSOject:
 // NSString 转成 NSData
NSData *data = [responseStr dataUsingEncoding:NSUTF8StringEncoding];
// 解档(NSData) 转成 NSOject
FMNetworkResponse *response = [NSKeyedUnarchiver unarchiveObjectWithData:data];

希望对你有帮助。

你可能感兴趣的:(iOS NSObject和NSString互转)