【问题标题】:NSURL fileURLWithPath:isDirectory: doesn't work properlyNSURL fileURLWithPath:isDirectory: 不能正常工作
【发布时间】:2012-03-07 18:51:25
【问题描述】:

我想做的只是从我的 iPhone 访问本地文件系统。 我在库目录中有一些文件。

所以,我的代码如下。

NSString *dir = @"/Users/MY_ID/Library/Application Support/iPhone Simulator/5.0/Applications/6AB76439-APP-ID-1C1BB92E/Library/test";
NSURL *url = [NSURL fileURLWithPath:dir isDirectory:NO];

那么,对于 url 的值,我得到的是,

file://localhost/Users/MY_ID/Library/Application%20Support/iPhone%20Simulator/5.0/Applications/6AB76439-APP-ID-1C1BB92E/Library/test

iPhone 模拟器和真正的 iPhone 都无法解析此网址。

我认为问题出在这部分。

file://localhost

因为没有那部分,我可以从字符串中读取文件。

但是,我需要做的是通过 NSURL 获取“测试”文件。

由于 [[MPMoviePlayerViewController alloc] initWithContentURL:] 方法只能读取 NSURL。

让我从本地文件系统中读取视频文件。

谢谢!!!

【问题讨论】:

    标签: nsurl


    【解决方案1】:

    既然这显然在您的本地测试环境之外没有用(因此无论如何也不是可移植的代码),为什么不在您机器的根目录中创建一个“localhost”符号链接?

    ln -s / /localhost
    

    我什至不知道 MPMoviePlayerViewController 可以以这种方式从本地文件系统中读取文件。为简单起见,为什么不将您的电影文件捆绑到应用程序中或将其托管在 Dropbox 之类的东西上?

    【讨论】:

    • 我不能,因为我是通过从网络上获取数据来动态制作这个测试文件的。
    • 你不能什么?使用符号链接,还是远程托管测试文件?假设符号链接不起作用:设置 Apache 并使用您的 IP 地址,例如“http://192.168.0.2/testfile.mpg”。这将是一个更好的测试,因为您需要对生产版本执行类似的操作。如果 iPhone 设备/模拟器能够从您的本地文件系统中读取,我会感到惊讶。
    猜你喜欢
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2010-11-30
    • 2021-10-02
    • 2017-08-06
    • 2013-11-22
    • 1970-01-01
    相关资源
    最近更新 更多