Objective c 检查包含“URL”的字符串;http://quot;
我试图检查用户输入的URL,但我正在与一些错误和警告作斗争Objective c 检查包含“URL”的字符串;http://quot;,objective-c,ios,cocoa-touch,nsstring,nsurl,Objective C,Ios,Cocoa Touch,Nsstring,Nsurl,我试图检查用户输入的URL,但我正在与一些错误和警告作斗争 -(BOOL) textFieldShouldReturn:(UITextField *)textField { //check "http://" NSString *check = textField.text; NSString *searchString = @"http://"; NSRange resultRange = [check rangeWithString:searchString]
-(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
在“if…else”条件下未使用的变量
urldaddress
(用于两者)urlAddress
未声明:在URLRequest
有人知道该怎么办吗?我相信你想要这个方法。要摆脱你的
urlAddress
警告,你应该在上面声明NSURL*urlAddress
if..else
:
NSURL *urlAddress = nil;
if (result) {
urlAddress = [NSURL URLWithString: textField.text];
} else {
NSString *good = [NSString stringWithFormat:@"http://%@", [textField text]];
urlAddress = [NSURL URLWithString: good];
}
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];
如果有NSURL,请使用将其转换为NSString
NSString stringURL = url.absoluteString
然后用此代码检查此NSString是否包含http://
[stringURL containsString: @"http://"]
- (BOOL)containsString:(NSString *)string {
return [self containsString:string caseSensitive:NO];
}
- (BOOL)containsString:(NSString*)string caseSensitive:(BOOL)caseSensitive {
BOOL contains = NO;
if (![NSString isNilOrEmpty:self] && ![NSString isNilOrEmpty:string]) {
NSRange range;
if (!caseSensitive) {
range = [self rangeOfString:string options:NSCaseInsensitiveSearch];
} else {
range = [self rangeOfString:string];
}
contains = (range.location != NSNotFound);
}
return contains;
}
用这个
NSString *stringUrl = url.absoluteString;
if ([stringUrl localizedCaseInsensitiveContainsString:@"your string"]) {
//do something
}
它首先将url转换为字符串,然后检查此url是否包含您的字符串最好使用[stringUrl localizedCaseInsensitiveContainsString:@“gif”]
NSString *stringUrl = url.absoluteString;
if ([stringUrl localizedCaseInsensitiveContainsString:@"your string"]) {
//do something
}