【问题标题】:NSURL with string giving null valueNSURL 字符串给出空值
【发布时间】:2013-05-16 01:51:21
【问题描述】:

以下是我所拥有的

NSString *foofile = @"/Users/alkandari/Library/Application Support/iPhone Simulator/6.1/Applications/8C445026-6387-4E40-B5A3-D1A1680666D6/Documents/ProjacsBODFiles/file_5_21.pdf"
NSURL *url;
if (fileExists) {
    url = [NSURL URLWithString:foofile];
    NSLog(@"taking local file 1 ... %@==%@", url, foofile);
} else {

    url=[NSURL URLWithString:address];
    NSLog(@"taking internet file 1... %@", url);
}

当我执行时,我得到如下日志

taking local file 1 ... (null)==/Users/alkandari/Library/Application Support/iPhone Simulator/6.1/Applications/8C445026-6387-4E40-B5A3-D1A1680666D6/Documents/ProjacsBODFiles/file_5_21.pdf

我不明白为什么我的 URL 为空。因此我无法打开文件。

知道为什么上面的 URL 为 null 吗?

【问题讨论】:

    标签: objective-c url ios6 nsurl file-exists


    【解决方案1】:

    您需要使用fileURLWithPath 作为本地文件系统的路径:

    NSString *foofile = @"/Users/alkandari/Library/Application Support/iPhone Simulator/6.1/Applications/8C445026-6387-4E40-B5A3-D1A1680666D6/Documents/ProjacsBODFiles/file_5_21.pdf"
    NSURL *url;
    if (fileExists) {
        url = [NSURL fileURLWithPath:foofile];
        NSLog(@"taking local file 1 ... %@==%@", url, foofile);
    } else {
    ...
    }
    

    【讨论】:

      【解决方案2】:

      您也可以使用以下代码访问模拟器文件夹中的文件;

      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
      
      NSString *libraryBaseDirectory = [paths objectAtIndex:0];
      
      NSString *privateDocumentsDirectory = [libraryBaseDirectory stringByAppendingPathComponent:@"ProjacsBODFiles"];
      

      【讨论】:

        猜你喜欢
        • 2021-06-23
        • 2011-10-13
        • 2018-10-18
        • 2016-04-22
        • 2011-11-27
        • 2014-09-29
        • 1970-01-01
        • 2019-07-22
        • 2012-03-30
        相关资源
        最近更新 更多