如何将NSString值转换为NSData?
当前回答
首先,你应该使用dataUsingEncoding:而不是通过UTF8String。只有在需要该编码的C字符串时才使用UTF8String。
然后,对于UTF-16,在你的dataUsingEncoding:消息中传递NSUnicodeStringEncoding而不是NSUTF8StringEncoding。
其他回答
在Swift中,有一个返回非可选参数的API
let str = "teststring"
let data = Data(str.utf8)
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 *str = @"Hello World";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
斯威夫特
let str = "Hello World"
let data = string.data(using: String.Encoding.utf8, allowLossyConversion: false)
以防Swift开发者来这里,
将NSString / String转换为NSData
var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)
首先,你应该使用dataUsingEncoding:而不是通过UTF8String。只有在需要该编码的C字符串时才使用UTF8String。
然后,对于UTF-16,在你的dataUsingEncoding:消息中传递NSUnicodeStringEncoding而不是NSUTF8StringEncoding。
推荐文章
- 架构i386的未定义符号:_OBJC_CLASS_$_SKPSMTPMessage",引用自:错误
- UILabel对齐文本到中心
- Objective-C中方法混合的危险是什么?
- 如何使用接口生成器创建的nib文件加载UIView
- iOS如何设置应用程序图标和启动图像
- 更改UITextField和UITextView光标/插入符颜色
- 'Project Name'是通过优化编译的——步进可能会表现得很奇怪;变量可能不可用
- 如何设置回退按钮文本在Swift
- 模拟器慢动作动画现在打开了吗?
- 如何为TableView创建NSIndexPath
- 滑动删除和“更多”按钮(就像iOS 7的邮件应用程序)
- 如何比较两个nsdate:哪个是最近的?
- 使UINavigationBar透明
- 如何改变推和弹出动画在一个基于导航的应用程序
- 删除/重置核心数据中的所有条目?