【发布时间】:2010-04-05 16:35:11
【问题描述】:
我一直在修改一些代码以在 Mac OS X 和 iPhone OS 之间工作。
我遇到了一些使用 NSURL 的 URLByAppendingPathComponent:(在 10.6 中添加)的代码,有些人可能知道,iPhone SDK 中没有这些代码。
让这段代码在操作系统之间工作的解决方案是使用
NSString *urlString = [myURL absoluteString];
urlString = [urlString stringByAppendingPathComponent:@"helloworld"];
myURL = [NSURL urlWithString:urlString];
问题在于 NSString 的 stringByAppendingPathComponent: 似乎从 URL 的 http:// 部分中删除了 / 之一。
这是预期的行为还是错误?
编辑
好的,所以我问上面的问题有点太快了。我重新阅读了文档,它确实说:
请注意,此方法仅适用于文件路径(例如,URL 的字符串表示形式)
但是,如果您需要将路径组件附加到 iPhone 上的 URL,它并没有给出正确方向的任何指示...
我总是可以手动执行,添加 /if 必要和额外的字符串,但我希望它尽可能接近原始 Mac OS X 代码...
【问题讨论】:
-
这不适用于带有服务前缀的文件路径。例如,file:///Users/myuser/Documents 将像您的 Web URL 示例一样被破坏。很难找到这一点。
标签: iphone cocoa cocoa-touch macos nsstring