所以,这看起来应该很容易,但我很难过......
我正在开发一个iOS应用程序,我正在从服务器下载视频内容,将其存储在文档中的自定义文件夹中,并在某个触发器上尝试播放视频。我在MovieViewController中遇到一些加载错误,所以我试图在单独的独立应用程序中调试从文件路径构造的NSURL。值得注意的是,相同的内容在添加到Bundle时工作正常,但是有很多,所以不能这样做。
无论如何......
我在我的应用程序中设置了断点,并复制了加载到我的电影播放器中的NSURL的路径,并尝试在我的测试应用程序中将其硬编码为NSURL。但我似乎不能只为它分配一个预先存在的值......例如。
NSURL *url = "file:///var/mobile/Containers/Data/Application/21078F3B-12C5-4D42-8B8B-3C85CB7A0A91/Documents/SecondStory/BloodAlley/MEDIA/copperthief.mp4"
(这是我从Debug区域的Variables View中复制出来的)。 它给了我错误:
*“ARC禁止将非Objective-C指针类型'char *'隐式转换为'NSURL '
......我似乎无法追查到......
当然,在转换为NSURL之前,我有文件路径的NSString表示,所以可以尝试重构它,但这让我很好奇为什么我不能只分配一个值...
答案 0 :(得分:2)
如错误所述,"file:///var/.../copperthief.mp4"
是char *
而不是NSURL
。
要将其转换为NSURL
,首先您必须通过添加 @ 前缀来获得char *
NSString
代表:< / p>
@"file:///var/.../copperthief.mp4"
然后使用NSString
将<{1}}转换为NSURL
:
URLWithString:
答案 1 :(得分:0)
首先,"..."
不是NSString。它是一个C字符串。 NSString是@"..."
,不是吗?即便如此,如果你想要一个NSURL,你必须将从NSString转换为NSURL,不是吗?我的意思是,您不能将任何类型的字符串分配给NSSURL变量并期望它能够正常工作,是吗?这是一种计算机语言;你不能说出任何旧的东西 - 你必须遵守规则。