ios - 将 NSData 转换为 NSUrl nil 字符串参数

标签 ios

我正在尝试将 NSdata 转换为 NSUrl,我在互联网上找到了这个方法:

NSString *urlString = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];
    NSURL *url = [[NSURL alloc] initWithString:urlString];
    [session sendResourceAtURL:url withName:@"Resource" toPeer:peerID withCompletionHandler:nil];

对我来说似乎没问题,但应用程序在第二行崩溃并给出错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initWithString:relativeToURL:]: nil string parameter'

不明白为什么...

最佳答案

myData 不是 UTF-8 编码的。

来自 NSString 文档:

Returns nil if the initialization fails for some reason (for example if data does not represent valid data for encoding).

您应该始终检查此类情况...

NSString *urlString = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding];
NSURL *url;
if (urlString) {
     url = [[NSURL alloc] initWithString:urlString];
} else {
    // handle failure
}

此外,确保在创建 myData 对象时使用 UTF8 编码,或者从 NSUTF8StringEncoding 切换到正确的编码类型。

关于ios - 将 NSData 转换为 NSUrl nil 字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19082082/

相关文章:

iOS 8 键盘将 View Controller 重置为 Storyboard位置

IOS:如何在用户拒绝时获取 CLLocationManager 警报

ios - ARC下使用接收 block 的方法的对象生命周期

iphone - 使XCode编译器允许.m文件中的C++

ios - 使用名为 imagewithcontentsofffile 的 imagenamed 转换 Swift iOS 动画图像

ios - 如何从 SwiftUI View 返回到 UIKit?

ios - MKMapView 仅在测试时导致 EXC_BAD_ACCESS

ios - 为 CGPoint 和 CGVector 创建快速泛型

java - 适用于 iOS 的小数格式

objective-c - 向 NavigationViewController 的后退按钮添加一些操作