我是iPhone开发和Objective-C的新手。使用ZBar SDK我开发了一个基本应用程序,它可以扫描相册中的QR图像并输出它所翻译的内容。
我想知道是否有办法获取此输出,确定它是否为URL,如果是,则在Web浏览器中打开它。
答案 0 :(得分:27)
如果传递的URL无效,NSURL的URLWithString将返回nil。因此,您只需检查返回值即可确定URL是否有效。
<强>更新强>
仅使用URLWithString:
通常是不够的,您可能还想检查网址是否有方案和主机,否则,al:/dsfhkgdsk
等网址将通过测试。
所以你可能想做这样的事情:
NSURL *url = [NSURL URLWithString:yourUrlString];
if (url && url.scheme && url.host)
{
//the url looks ok, do something with it
NSLog(@"%@ is a valid URL", yourUrlString);
}
如果您只想接受http网址,可以添加[url.scheme isEqualToString:@"http"]
。
答案 1 :(得分:3)
这是我遇到的替代解决方案。你可以这样做。
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:@"yourstring"]];
bool valid = [NSURLConnection canHandleRequest:req];
答案 2 :(得分:0)
您可以查看以下代码,以检查字符串是否包含网站网址或简单文字。
NSString *getString =[[NSUserDefaults standardUserDefaults]valueForKey:@"searchKey"];
if([getString rangeOfString:@"Www"].location == NSNotFound
&& [getString rangeOfString:@"www"].location == NSNotFound && [getString rangeOfString:@"com"].location == NSNotFound)
{
[companyNameTF setText:[[NSUserDefaults standardUserDefaults]valueForKey:@"searchKey"]];
}
else
{
[websiteTF setText:[[NSUserDefaults standardUserDefaults]valueForKey:@"searchKey"]];
}