声明一个带有格式说明符的 NSString 并将其用作在 UIWebview 中打开的 URL
Posted
技术标签:
【中文标题】声明一个带有格式说明符的 NSString 并将其用作在 UIWebview 中打开的 URL【英文标题】:Declare an NSString With Format Specifiers and use it as a URL to open in UIWebview 【发布时间】:2010-12-12 10:27:37 【问题描述】:我有一个包含数字的 int。我想声明一个NSString
,以便在为其赋值时使用格式说明符。
我认为它可能是这样的:
NSString[NSString stringWithFormat] myString;
myString = [@"http://myurl.com/%d",myInt];
我认为情况并非如此,所以问题之一是:我如何声明一个可以处理格式说明符的NSString
,然后使用格式说明符为其分配一个值?这个NSString
的目的是保存一个 URL,就像上面的第二行一样。
问题二是,我如何使用这个字符串作为 URL 在UIWebView
中打开?
我假设我使用这样的东西:
[webView 加载请求:
可悲的是,这是我所知道的。有没有办法告诉我的UIWebView
(上面的webView)使用NSString
和我之前提到的URL?
我打算将NSString
作为全局变量,因为它将在 C 函数中分配它的值。而“webView”将在一个(我认为是一个)方法中使用它。所有这些代码都在同一个文件中,即 Delegate.m 文件。这一切都在应用程序启动时执行。
【问题讨论】:
【参考方案1】:你的字符串应该是这样的:
NSString *myString = [NSString stringWithFormat:@"http://myurl.com/%d", myInt];
您错过了什么:添加 * 表示指针,并认为您必须/可以首先声明字符串将具有格式,然后再声明格式。这一切同时发生,创建具有指定格式的字符串。
编辑添加 NSURL
要创建一个 url,你需要创建一个 NSURL 类的对象,如下所示:
NSURL *myURL = [[NSURL alloc] initWithString:myString];
然后你创建 url 请求:
NSURLRequest *request = [NSURLRequest requestWithURL:myURL];
最后,告诉你的 webView 加载请求:
[webView loadRequest:request];
【讨论】:
嗨,马修,非常感谢,效果很好,但我遇到了一个错误。似乎 NSString 在分配 URL 的 C 函数之外是不可访问的。您提供的最后 3 行代码在“didFinishLoadingWithOptions”期间执行。我收到一条错误消息,说 NSString 未声明。有解决方法吗?非常感谢 你是对的,该字符串仅在创建它的方法中可用。现在在哪里声明?【参考方案2】:对于您的第一部分:
NSString *myString = [NSString stringWithFormat:@"http://myurl.com/%d", myInt];
然后,根据 iphonesdkarticles.com 的教程:
//Create a URL object.
NSURL *url = [NSURL URLWithString:myString];
//URL Request Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[webView loadRequest:requestObj];
【讨论】:
以上是关于声明一个带有格式说明符的 NSString 并将其用作在 UIWebview 中打开的 URL的主要内容,如果未能解决你的问题,请参考以下文章
如何检查NSString格式是否包含与可变参数相同数量的说明符?
iPhone:如何将 NSString 拆分为多行并将其设置为 UILabel? [复制]