如何将NSString值转换为NSData?
当前回答
NSString *str = @"hello";
NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length];
其他回答
objective - c:
NSString *str = @"test string";
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:str];
NSString *thatStr = [NSKeyedUnarchiver unarchiveObjectWithData:data];
迅速:
let str = "test string"
let data = NSKeyedArchiver.archivedData(withRootObject: str)
let thatStr = NSKeyedUnarchiver.unarchiveObject(with: data) as! String
objective - c:
NSString to NSData:
NSString* str= @"string";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
NSData to NSString:
NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
迅速:
字符串到数据:
var testString = "string"
var somedata = testString.data(using: String.Encoding.utf8)
数据到字符串:
var backToString = String(data: somedata!, encoding: String.Encoding.utf8) as String!
对于Swift 3,你将主要从字符串转换为数据。
let myString = "test"
let myData = myString.data(using: .utf8)
print(myData) // Optional(Data)
NSString *str = @"Banana";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:true];
Do:
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
然后继续NSJSONSerialization:JSONObjectWithData。
修正关于NULL结束符的答案
根据评论、官方文档和验证,更新了关于删除所谓NULL结束符的答案:
正如dataUsingEncoding所记录的:: 返回值 调用dataUsingEncoding:allowLossyConversion:的结果,NO作为第二个参数 正如getCString:maxLength:encoding:和cStringUsingEncoding::所记录的那样 注意dataUsingEncoding:allowLossyConversion:返回的数据不是一个严格的C-string,因为它没有NULL结束符
推荐文章
- 我如何在我的iOS应用程序中每n分钟得到一个后台位置更新?
- 如何使用iOS创建GUID/UUID
- 禁用所呈现视图控制器的交互式撤销
- 点击按钮时如何打开手机设置?
- 如何使用UIVisualEffectView来模糊图像?
- 如何修复UITableView分隔符在iOS 7?
- 故事板中的自定义单元格行高设置没有响应
- 如何改变时间和时区在iPhone模拟器?
- 在Swift中使用自定义消息抛出错误/异常的最简单方法?
- 如何在Swift中获得唯一的设备ID ?
- 我如何知道何时UITableView完成了ReloadData?
- 复制文本到剪贴板与iOS
- 在Swift中根据字符串计算UILabel的大小
- 如何调用手势点击在UIView编程在迅速
- 什么是Swift相当于respondsToSelector?