iOS 10 NSData 转化为NSString 失败
来源:互联网 发布:java搜索引擎源代码 编辑:程序博客网 时间:2024/04/28 01:03
遇到的问题
为了适配iOS 10 ,我新建了一个测试项目。结果发现了一个问题。就是NSData 转化为NSString 失败,使用 NSJSONSerialization 解析也失败。结果都是 nil.
下面我就来说说这个问题。这个问题是我在适配 iOS 10 推送通知,获取token 的时候发现的。当时 我获取了 token,但是转化成NSString 结果输出为 nil. 本来以为是token 没有获取到,但是直接输出 deviceToken 是有值得。就是转化为NSString 出现了问题。
NSString *token = [[NSString alloc]initWithData:deviceToken encoding:NSUTF8StringEncoding]; token = [token stringByReplacingOccurrencesOfString:@" " withString:@""]; token = [token stringByReplacingOccurrencesOfString:@"<" withString:@""]; token = [token stringByReplacingOccurrencesOfString:@">" withString:@""]; NSLog(@"request notificatoin token success. %@",token);2016-09-20 15:25:09.837367 demo[3483:1451249] request notificatoin token success. (null)
我有试了系统的json 解析,结果也失败了。
NSError *error; NSString *tokenMessage = [NSJSONSerialization JSONObjectWithData:deviceToken options:kNilOptions error:&error]; if (error) { NSLog(@"解析失败。 error= %@",error.localizedDescription); } NSLog(@"解析的token = %@",tokenMessage); 解析失败。 error= The data couldn’t be read because it isn’t in the correct format.2016-09-20 15:29:01.322631 demo[3486:1452379] 解析的token = (null)
错误原因是解析的格式错误。不知道这个只能成功的解析 方法,不知道为什么失效了。
PS: 有人告诉我deviceToken 不是json类型的文件,当然没办法解析。大家自动忽略上面这一段吧。
解决方法
目前的解决方法是暂时不使用系统的解析方法。
NSString *token = [deviceToken description]; token = [token stringByReplacingOccurrencesOfString:@" " withString:@""]; token = [token stringByReplacingOccurrencesOfString:@"<" withString:@""]; token = [token stringByReplacingOccurrencesOfString:@">" withString:@""]; NSLog(@"request notificatoin token success. %@",token);2016-09-20 15:33:04.092966 demo[3489:1453498] request notificatoin token success. d6d1f2fa8f0f433663947173e08553dc4c7cdca073290672xxxxxxxxxxxxxxxx
使用 [deviceToken description] 这个方法,这个方法是Java的tostring 。所有的OC对象都可以使用这个方法。只要data不是用64之类的转码来的,都可以用这个转成字符串。这个方法并不是iOS 10 才出现的。
2 0
- iOS 10 NSData 转化为NSString 失败
- iOS NSString 与NSData转化
- iOS NSString 与NSData转化
- nsstring,nsdata转化
- ios NSData转NSString NSDictionary 为nil
- iOS NSData 转 NSString为空
- iOS中NSString和NSData的相互转化
- NSString 与 NSData相互转化
- NSArray与NSString、NSData,NSDictionary与NSString、NSData 相互转化
- NSData转化为图片
- IOS NSdata 转化
- iOS开发之将字典NSDictionary转化为NSData数据
- iOS: Convert NSData to NSString
- iOS NSString 和NSData 转换
- iOS NSString 和NSData 转换
- iOS NSString 和NSData 转换
- iOS NSString 和NSData 转换
- iOS NSString 和NSData 转换
- 【Caffe】001 命令行参数解析
- Android JVM的运行过程
- AndroidStudio快捷键汇总
- Android面试题目
- 百万并发量苹果官网准备好了吗?——一分钟学会服务器压力测试
- iOS 10 NSData 转化为NSString 失败
- 自定义TitleBar的母版
- Python第一阶段总结
- Error: EACCES: permission denied, open '/opt/webapp/bower.json' yoemanchmod -R 777 .
- <转>Spark Streaming实时计算框架介绍
- iOS开发 - 怎么让支持iPad/iPhone的app取消支持iPad或者iPhone中的一项
- ios端与android端数据返回的问题
- Validation approaches for API testing
- Linux内核链表VS传统链表