使用relativeToURL初始化程序在swift中发布构建URL

时间:2014-11-28 01:38:19

标签: ios swift

我正在构建一个与api交互的iPhone应用程序。我正在建立一个看起来像这样的课程:

class Api {
  let base_url = NSURL(string: "http://localhost:3000/api/v1/")
  func users(){
    let url = NSURL(string: "users", relativeToURL: base_url)
    ...
  }
}

我的目的是获得API的基本URL,然后使用该基本URL构建API中所有端点的URL。但是,我发现即使我能够在Playground项目中成功构建上面显示的URL(所以在上面的示例中url代表"http://localhost:3000/api/v1"),当我尝试在我的应用程序中执行此操作时它不会工作,它建立一个奇怪的网址(像"users --ttp://localhost:3000/api/v1/"。 我有点困惑,因为它适用于游乐场项目,但如果我在我的应用程序上做同样的事情,它就不会。

希望得到一些帮助。

1 个答案:

答案 0 :(得分:0)

它构建了正确的URL,它只显示奇怪。您可以使用absoluteURL()(或absoluteString())来获取打印得很好的网址版本。


即使description()返回一个奇怪的字符串,也会在NSURLRequest或任何其他带NSURL的对象中使用正确的网址。