2013-10-11 126 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然後它應該打印網址。但如果沒有,那麼應該打印字符串。 –

相關問題