我查看了很多相关问题,找不到类似的问题或解决方案,所以如果某处有重复,我会道歉。
无论如何,我正在尝试生成一个文件的NSURL以与NSXMLDocument一起使用。我有以下组件:
const NSString * PROJECT_DIR = @"~/SP\\ BB/";
const NSString * STRINGS_FILE = @"Localizable.strings";
并构建如下所示的URL:
NSURL * stringsURL = [NSURL fileURLWithPath:[[NSString stringWithFormat:@"%@%@",PROJECT_DIR,STRINGS_FILE] stringByExpandingTildeInPath]];
然而,NSURL中产生的路径是:
文件://localhost/Users/timothyborrowdale/SP2B/Localizable.strings
我尝试将PROJECT_DIR更改为
@"~/SP BB/"
@"~/SP\\\\ BB/" (changes to SP엀2B)
@"~/SP%20BB/"
@"~/SP\%20BB/"
有同样的问题。我还尝试使用[NSURL URLWithString:]
我也尝试将stringByAddingPercentEscapesUsingEncoding
与NSUTF8Encoding和NSASCCIEncoding一起使用,这些问题也存在同样的问题。
NSString在传递给NSURL或stringByAddingPercentEscapesUsingEncoding
之前正确显示,但一旦输出就会出现问题。
答案 0 :(得分:1)
试试这个:
NSString *fnam = [@"Localizable" stringByAppendingPathExtension:@"strings"];
NSArray *parts = [NSArray arrayWithPathComponents:@"~", @"SP BB", fnam, (void *)nil];
NSString *path = [[NSString pathWithComponents:parts] stringByStandardizingPath];
NSURL *furl = [NSURL fileURLWithPath:path];
Foundation拥有许多与平台无关的路径相关方法。优先选择硬编码路径扩展分隔符(通常为“。”)和路径组件分隔符(通常为“/”或“\”)。
答案 1 :(得分:0)
尝试放弃stringWithFormat:
(永远不是正确的拼写路径答案)和stringByExpandingTildeInPath
并使用NSHomeDirectory()
和stringByAppendingPathComponent:
代替。
- @“〜/ SP \\ BB /”(更改为SP엀2B)
你是如何得出这个结论的?