我有这个代码在iOS中获取文件,将其转换为NSData并将其转换为NSString:
NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
NSData *files = [filemgr contentsAtPath:databasePath];
NSData *databuffer = [filemgr contentsAtPath:databasePath];
NSString *string = [NSString stringWithFormat:@"%@",databuffer];
我想知道的是,是否有可能将此NSString转换为NSData并使用NSFileManager通过NSData返回并以原始格式重新保存文件?
答案 0 :(得分:1)
stringWithFormat
是一种调用NSData的description
方法的昂贵方法。这只会产生一个十六进制转储。并且,我们被告知,Apple不保证description
方法生成将来不会更改的格式,因此它只应用于诊断目的。
如果要将NSData转换为字符串格式,以便可以作为字符串传输,则应使用Base64编码。如果NSData实际上是字符信息,则应使用适当的字符串编码将其转换为NSString。
答案 1 :(得分:0)
要将NSData
转换为NSString
使用:
NSString *string = [[NSString alloc] initWithData:data encoding: NSUTF8StringEncoding];`
假设数据是用NSUTF8StringEncoding
编码的(很好的选择)。
将NSString
转换为NSData
:
NSData *data = [string dataUsingEncoding: NSUTF8StringEncoding];`
假设数据编码应为NSUTF8StringEncoding
(一个不错的选择)。
你需要做一些研究/研究NSData和NSString之间的区别。