Pau*_*aul 5 cocoa-touch objective-c nsurl nsstring ios
我正在尝试检查用户输入的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];
}
Run Code Online (Sandbox Code Playgroud)
他们说:
NSString可能无法响应-rangeWithString
未使用urlAddress的条件"if ... else"(对于两者)
urlAddress未声明:在URLRequest
有谁知道该怎么办?
Mor*_*ast 19
NSString响应rangeOfString:,而不是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];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8967 次 |
| 最近记录: |