【问题标题】:Building up a URL in Objective-C [closed]在 Objective-C 中建立一个 URL [关闭]
【发布时间】:2013-05-08 09:40:17
【问题描述】:

我想向不同的服务器发出请求 我只想在文本字段中填写 url 或 ip 地址。 我建立了不同的解决方案,但都失败了。我想这个我很接近。

这是我目前构建的:

NSString *part0 = @"http://";
NSString *part1 = [NSString stringWithFormat:@"%@" , _serveradres.text ];
NSString *part2 = @"/API/";
NSString *compURL = [NSString stringWithFormat:@"%@" , part0 , part1 , part2 ];

NSURL *url = [NSURL URLWithString:compURL];



ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

只是地址不同,api都是同一个地方的。

稍后我想做一个可以选择http或https的开关

【问题讨论】:

  • 提示:在调试器中查看compURL。
  • 提示:不要接受你看到的第一个答案。查看给出的答案并尝试理解每个答案所描述的内容。 Augustine P A 和我自己的答案将使您得到相同的结果,但解决方案更有效。努力找出答案并了解正在发生的事情。在不了解您在做什么的情况下,仅复制和粘贴代码是一种不好的做法。
  • 我确实切换到了较小的解决方案;)谢谢。
  • 如果您更改并使用了不同的答案,您应该将该答案标记为正确答案。这将节省其他人在查找此线程时的时间。

标签: ios nsurl


【解决方案1】:

这样做

NSString *compURL = [NSString stringWithFormat:@"http://%@/API/", serverAddr];

【讨论】:

  • 这仅在我使用 _serveradres.text 时有效
  • serverAddr 供您参考。您已将其替换为“_serveradres.text”
【解决方案2】:

不需要所有实例化的NSString:

NSString *compURLString = [NSString stringWithFormat:@"http://%@/API/", _serveradres.text]; // Probably ought to be self.serveradres.text instead.
NSURL *url = [NSURL URLWithString:compURLString];

*注意 - 我将指向 compURL 的指针的名称更改为 compURLString。以变​​量的作用和它们的本质命名变量的习惯将在以后避免您头疼。

【讨论】:

  • 谢谢这也有效,我不确定哪种方法最适合我使用
  • 阅读我对上述问题的评论。我的解决方案或奥古斯丁的解决方案都更好,因为您实例化的 NSString 对象较少。更高效几乎总是更好:)
【解决方案3】:

你应该改变这个:

NSString *compURL = [NSString stringWithFormat:@"%@" , part0 , part1 , part2 ];

到这里:

NSString *compURL = [NSString stringWithFormat:@"%@%@%@" , part0 , part1 , part2 ];

因为现在您的 compURL 将只是 http://

希望对你有帮助

【讨论】:

  • 现在我用这个。谢谢! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多