来自字符串的 NSURL 不起作用

NSURL from string not working

编写了一种在临时文件夹中提取 zip 文件的方法,并使得 class 中的所有方法都使用 NSURL 而不是路径启动,但是当尝试将路径更改为 NSURL 时 returns空。

//handles all ZIP Extraction
-(NSURL*)handleZIPExtractionAtDestination:(NSURL*)destinationURL
{
    NSString *destPath=[[destinationURL path]
                     stringByAppendingPathComponent:
                        [[[_archiveURL lastPathComponent] componentsSeparatedByString:@"."]
                         firstObject]];
    
    BOOL result=[SSZipArchive unzipFileAtPath:[_archiveURL path] toDestination:destPath];
    
    if(!result)
    {
        NSLog(@"Couldn't extract the Files.");
        return nil;
    }
    NSLog(@"%@",destPath);
    NSURL *url=[NSURL URLWithString:destPath];
    NSLog(@"%@",url);
  
    return url;
}

结果:

destPath=/private/var/mobile/Containers/Data/Application/43DB7D13-9999-4231-B8AB-885CF8757931/tmp/715F6E97-968B-4FD9-A517-D9C2320A85A3-3213-0000043B8B4AFD91/900156_d378ef9fe1 2

url=null

destPath 使用 NSTemporaryDirectory 和来自 NSProcessInfo

globallyUniqueString

结果为空,因为您的 destPath 变量包含相对 url 路径不完整 url.for NSURL 您需要完整路径,例如 http://web.com/you/file/path.html 如果你想要本地路径那么它应该是 file:///path/to/your/file.html

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath];

试试这个