Ios 尝试使用Watch OS 2发送图像时出现WCErrorDomain 7013
我正在测试Apple Watch OS 2,并试图将图像从应用程序发送到手表。根据苹果公司的说法,我将使用WCSession transferFile来完成这项工作 使用transferFile:metadata:方法在后台传输文件。如果要发送的不仅仅是简单的值字典,请使用此方法。例如,使用此方法发送图像或基于文件的文档 例如:Ios 尝试使用Watch OS 2发送图像时出现WCErrorDomain 7013,ios,watchkit,apple-watch,Ios,Watchkit,Apple Watch,我正在测试Apple Watch OS 2,并试图将图像从应用程序发送到手表。根据苹果公司的说法,我将使用WCSession transferFile来完成这项工作 使用transferFile:metadata:方法在后台传输文件。如果要发送的不仅仅是简单的值字典,请使用此方法。例如,使用此方法发送图像或基于文件的文档 例如: NSString *string = [[NSBundle mainBundle] pathForResource:@"my_image" ofType:@"png"]
NSString *string = [[NSBundle mainBundle] pathForResource:@"my_image" ofType:@"png"];
NSURL *path = [NSURL URLWithString:string];
[[WCSession defaultSession] transferFile:path metadata:@{@"meta1":@"meta2"}];
在调试器中看起来一切正常,路径正确,文件可访问(使用NSFileManager检查)且可读
但是,每次尝试时,都会收到对didFinishFileTransfer函数的回调,包括一个错误:
Error Domain=WCErrorDomain Code=7013“操作无法完成。(WCErrorDomain错误7013)”
查找错误:
WCErrorCodeFileAccessDenied
一个错误,指示无法传输文件,因为无法访问该文件。
在watchOS 2.0及更高版本中提供
发送功能似乎无法访问该文件?我尝试过将文件重新保存到另一个目录等,但似乎没有任何效果
有人有主意吗?我设法解决了这个问题 这是因为我的路径不是以文件开头的:// 以下代码工作得很好:
NSString *string = [[NSBundle mainBundle] pathForResource:@"my_image" ofType:@"png"];
string = [NSString stringWithFormat:@"file://%@", string];
NSURL *path = [NSURL URLWithString:string];
[[WCSession defaultSession] transferFile:path metadata:@{@"meta1":@"meta2"}];
因此,它对路径非常挑剔。您创建的URL不是文件URL。尝试:
NSURL *path = [NSURL fileURLWithPath:string];