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];
}
他们说:
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];
| 归档时间: | 
 | 
| 查看次数: | 8967 次 | 
| 最近记录: |