我正在尝试检查用户输入的 URL,但我正在与一些错误和警告作斗争。
-(BOOL) textFieldShouldReturn:(UITextField *)textField {
//check "http://"
NSString *check = textField.text;
NSString *searchString = @"http://";
NSRange resultRange = [check rangeWithString:searchString];
BOOL result = resultRange.location != NSNotFound;
if (result) {
NSURL *urlAddress = [NSURL URLWithString: textField.text];
} else {
NSString *good = [NSString stringWithFormat:@"http://%@", [textField text]];
NSURL *urlAddress = [NSURL URLWithString: good];
}
// open url
NSURLRequest *requestObject = [NSURLRequest requestWithURL:urlAddress];
}
他们说:
NSString
可能不会回应-rangeWithString
未使用的变量urlAddress
在条件“if … else”中(对于两者)
urlAddress
未申报:在URLRequest
有人知道该怎么做吗?
NSString 响应rangeOfString:
, not rangeWithString:
.
变量 urlAddress 在if
声明,并在else
陈述。这意味着它只存在于该范围内。一旦离开 if/else 语句,变量就消失了。
对于 URL,最好以方案开头(例如“http://”),并且您的代码会很乐意接受 apple.http://.com 为有效。
您可以使用hasPrefix:
方法,像这样:
BOOL result = [[check lowercaseString] hasPrefix:@"http://"];
NSURL *urlAddress = nil;
if (result) {
urlAddress = [NSURL URLWithString: textField.text];
}
else {
NSString *good = [NSString stringWithFormat:@"http://%@", [textField text]];
urlAddress = [NSURL URLWithString: good];
}
NSURLRequest *requestObject = [NSURLRequest requestWithURL:urlAddress];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)