【问题标题】:UIWebView - NSStringWithFormat [closed]UIWebView - NSStringWithFormat [关闭]
【发布时间】:2010-09-02 13:11:29
【问题描述】:

我正在尝试让 UIWebView 使用以下代码:

NSString *urlAddress = [NSString stringWithFormat: @"http://www.wikipedia.org/wiki/%@",recipe.name];

recipe.name 是核心数据模型中的实体和属性

我使用 NSLog 测试了recipe.name,它正确输出到控制台

我只用一个普通的 URL 尝试了这个,它工作正常:

NSString *urlAddress = [NSString stringWithFormat: @"http://www.wikipedia.org/wiki/soup"];

【问题讨论】:

  • 你能解释一下出了什么问题吗?
  • 我有一个带有配方名称的数据库表,我想将其附加到维基百科 url 上以显示在 UIWebView 中。如果我使用以下内容,则可以使用“recipe.name”调用每个配方名称,它可以正常工作: NSString *urlAddress = [NSString stringWithFormat: @"wikipedia.org/wiki/soup"]; 但是,如果我尝试将附加对象放在末尾像这样的 URL: NSString *urlAddress = [NSString stringWithFormat: @"wikipedia.org/wiki/%@",recipe.name];它不加载网页。

标签: ios uiwebview


【解决方案1】:
  1. 初始化你的UIWebView

  2. 创建一个包含您的网址的NSURL-object(例如使用+[NSURL URLWithString:])。

  3. 使用创建的NSURL-object 创建一个NSURLRequest-object

  4. 在您的 webView 中加载 NSURLRequest

  5. :)

【讨论】:

  • 我已经这样做了,代码的工作方式如下: NSString *urlAddress = [NSString stringWithFormat: @"wikipedia.org/wiki/soup"]; NSURL *url = [NSURL URLWithString:urlAddress]; NSURLRequest *requestObj = [ NSURLRequest requestWithURL:url]; [webView loadRequest:requestObj]; 它不适用于 recipe.name 对象: NSString *urlAddress = [NSString stringWithFormat: @"wikipedia.org/wiki/%@",recipe.name]; NSURL *url = [NSURL URLWithString:urlAddress]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [webView loadRequest:requestObj];
  • 你需要对 urlstring 进行编码。例如:NSURL *url= [NSURL URLWithString: [urlAddress stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
  • 非常感谢您的回复。是因为“recipe.name”中有空格吗?比如“俱乐部三明治”?
  • 别担心! =) 这是为了避免在 URL 中可能无法正常工作的任何字符,空格就是其中之一。
  • 它现在可以工作了!这是一个很好的代码知道。再次感谢。
猜你喜欢
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 2016-05-15
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
相关资源
最近更新 更多