我遇到了一些使用NSURL的URLByAppendingPathComponent的代码:(10.6中添加),有些人可能会知道这些代码在iPhone SDK中不可用。
我的解决方案使这个代码在 *** 作系统之间工作是使用
Nsstring *urlString = [myURL absoluteString];urlString = [urlString stringByAppendingPathComponent:@"helloworld"];myURL = [NSURL urlWithString:urlString];
这样做的问题是Nsstring的stringByAppendingPathComponent:似乎从URL的http://部分删除了一个/。
这是有意的行为还是一个错误?
编辑
好的,所以我问了上面的问题有点太快了。我重新阅读了文件,它说:
Note that this method only works with file paths (not,for example,string representations of URLs)
但是,如果您需要将路径组件添加到iPhone上的URL,则它不会给出正确方向上的任何指针,要做什么,请执行以下 *** 作:
我可以随时手动进行 *** 作,添加/如果需要和额外的字符串,但我希望保持它尽可能接近原始的Mac OS X代码…
解决方法 我将在NSURL上实现一个myURLByAppendingPathComponent:方法,这样做也是一样。给它一个不同名称的原因是,当苹果公司将10.6 API移植到iPhone时,它不会覆盖苹果提供的方法(所以“我的”仅仅是一个例子 – 关键是它不太可能有人否则会写一个这个名字的方法)。在我看来,你只想混乱路径而不是整个网址。这是一个未经测试的示例:
- (NSURL *)myURLByAppendingPathComponent:(Nsstring *)component { Nsstring *newPath = [[self path] stringByAppendingPathComponent:component]; return [[[NSURL alloc] initWithScheme: [self scheme] host: [self host] path: newPath] autorelease];}
它只能与具有类似文件的路径的URL正常工作,但我很确定Apple方法的工作方式相同。无论如何,希望它能帮助你正确的方向。
总结以上是内存溢出为你收集整理的iphone – NSString的stringByAppendingPathComponent:在http://中删除’/’全部内容,希望文章能够帮你解决iphone – NSString的stringByAppendingPathComponent:在http://中删除’/’所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)