2013-10-11 218 views
0

我更新鲜的iOS,我在检查字符串对象包含URL或字符串时出现问题?如何检查NSString是否包含URL或字符串数​​据?

NSMutableArray *Arr=[NSMutableArray alloc]initWithObject:@"Welcome", @"http://abcd.com/Images/bus.png", nil]; 

int i; 

i++; 

NSString *str=[Arr objectAtIndex:i]; 

现在,我要检查的条件,如果字符串包含“欢迎光临”,必须显示标签上,或者是URL,我需要的ImageView来显示URL图像。那我怎么检查它?请帮我解决这个问题。

回答

1

相反发起既作为NSString的的,试图通过它们之间的区别使URL成为NSURL(专门用于URL的特殊容器):

NSMutableArray* Arr = [NSMutableArray alloc]initWithObject:@"Welcome", [NSURL URLWithString:@"http://abcd.com/Images/bus.png"], nil]; 

for(id object in Arr) 
{ 
    if([object isKindOfClass:[NSString class]]) 
    { 
     NSString* string = object; 
     NSLog(@"String: %@", string); 
    } 
    else if([object isKindOfClass:[NSURL class]]) 
    { 
     NSURL* url = object; 
     NSLog(@"URL: %@", url); 
    } 
} 
0

要检查NSString被包含URL你可以试试这个代码

if ([stringName hasPrefix:@"http://"] || [stringName hasPrefix:@"https://"]) { 
    //show imageVivew 
} 
+2

不检查前缀Y,这将需要改变,如果你决定要支持FTP://或其他协议。相反,使用NSURL类的类型,这也是很快,看到我的文章。 – SomeGuy

+0

我同意这个解决方案需要稍作修改。你只要添加[stringName hasPrefix:@“ftp://”],这不是什么大不了的事情。 – sohail059

+0

@SomeGuy在问题Ramesh询问如何检查一个字符串是否包含url? – sohail059

0

试试这个,它会帮助你:

NSMutableArray *Arr=[[NSMutableArray alloc]initWithObjects:@"Welcome", @"http://abcd.com/Images/bus.png", nil]; 

if([Arr count]) 

{ 

for (NSString *str in Arr) 

    { 
     if([str isEqualToString:@"Welcome"]) 

     { 
      NSLog(@"str is %@",str); 

      //do whatever you want 
     } 

     if([str isEqualToString:@"http://abcd.com/Images/bus.png"]) 

     { 
      NSLog(@"str is %@",str); 

      //do whatever you want 
     } 
    } 
} 
1

Tr这样

NSMutableArray *Arr=[[NSMutableArray alloc]initWithObjects:@"Welcome", @"http://abcd.com/Images/bus.png",nil]; 

    NSString *st=nil; 
    for(NSString *string in Arr) 
    { 
    NSArray *matches = [detector 
       matchesInString:string 
            options:0 
             range:NSMakeRange(0,  
            [string length])]; 
    for (NSTextCheckingResult *match in 
      matches) { 
      if ([match resultType] ==  
     NSTextCheckingTypeLink) { 
     NSURL *url = [match URL]; 
     } else 
     { 
     NSlog(@"it is a string"); 
     } 
    } 

}

+0

这是什么问题?任何人都可以请解释??因为它对我来说工作正常 –

+0

它只适用于http URL,并且在以http开头的非url字符串上失败。一些输入它会失败:“ftp://google.com”,“http是一个协议” –

+0

好吧,但要求是操作要如果字符串包含http然后它应该打印网址。但如果没有,那么应该打印字符串。 –

相关问题