Ios NSData发送至NSUrl和viceversa
我正在使用MultiPier连接发送文件。当我发送它时,它是以NSData的形式存在的,但是该方法需要NSUrl,在接收文件时也是如此。设备接收NSUrl,我必须将其转换为NSData。因此: NSdata=>NSUrl。。。。。。。。NSUrl=>NSData 对于第一个(NSData到NSUrl),我尝试了以下方法: (一) (二) 最后,我可以发送url:Ios NSData发送至NSUrl和viceversa,ios,Ios,我正在使用MultiPier连接发送文件。当我发送它时,它是以NSData的形式存在的,但是该方法需要NSUrl,在接收文件时也是如此。设备接收NSUrl,我必须将其转换为NSData。因此: NSdata=>NSUrl。。。。。。。。NSUrl=>NSData 对于第一个(NSData到NSUrl),我尝试了以下方法: (一) (二) 最后,我可以发送url: [session sendResourceAtURL:urlData withName:@"Resource" toPeer:peer
[session sendResourceAtURL:urlData withName:@"Resource" toPeer:peerID withCompletionHandler:nil];
第二,我要:
NSData* data = [NSData dataWithContentsOfURL:localURL options:NSDataReadingUncached error:&error];
…但有时应用程序会崩溃,当我试图发送更大的文件时就会发生这种情况。我认为这是因为系统写文件需要时间,而且如果我需要再次“保存”文件,整个过程将花费更长的时间。有没有一种更快更安全的方法???你对崩溃做了什么调试-它发生在代码中的什么地方等?它说localUrl为零如果你在类型之间进行转换,你应该输入NSAssert(BOOL条件,要打印的字符串);并确保内容已成功转换。您可以通过查看内容是否为nil aka NSAssert(localUrl!=nil,@“localUrl不应为nil,localUrl无法从字符串创建”)来测试命中率;
[session sendResourceAtURL:urlData withName:@"Resource" toPeer:peerID withCompletionHandler:nil];
NSData* data = [NSData dataWithContentsOfURL:localURL options:NSDataReadingUncached error:&error];