2010-09-28 20 views
9

Ben iPhone geliştirme ve Objective-C yeni. ZBar SDK'yı kullanarak fotoğraf albümünden bir QR görüntüsünü tarayan ve dönüştürdüğü çıktıları temel bir uygulama geliştirdim.Dize bir URL olup olmadığını belirlemek için Objective-C

Bu çıkışı almanın bir yolu olup olmadığını, bir URL olup olmadığını ve varsa bir web tarayıcısında açıp açmadığını öğrenmek istiyorum. geçti URL geçerli değilse

Teşekkür Zac

cevap

22

NSURL en URLWithString işlevi nil. Yani, URL'nin geçerli olup olmadığını belirlemek için dönüş değerini kontrol edebilirsiniz.

GÜNCELLEME

Sadece URLWithString: kullanarak genellikle yeterli olmayacak, muhtemelen de başka türlü, örneğin al:/dsfhkgdsk olarak URL'ler testi geçecek url bir plan ve bir ev sahibi olup olmadığını kontrol etmek istiyorum.

Yani muhtemelen böyle bir şey yapmak istiyorum:

NSURL *url = [NSURL URLWithString:yourUrlString]; 
if (url && url.scheme && url.host) 
{ 
    //the url looks ok, do something with it 
    NSLog(@"%@ is a valid URL", yourUrlString); 
} 

yalnızca http URL'sini kabul etmek isterseniz [url.scheme isEqualToString:@"http"] eklemek isteyebilir.

+0

Teşekkür :) bu kadar ama Objective C ile çok daha fazla pratiğe ihtiyacım şimdi sıralanır Got! haha –

+3

Geçerli bir URL olan gevşek bir tanıma sahip gibi görünüyor. "foo.com" ayrıştıracaktır, bu yüzden muhtemelen sonuçlanan nesnenin bir şema özelliğine sahip olduğunu kontrol etmek isteyebilirsiniz. – drewish

+3

URLWithString'e güvenemezsiniz, çünkü NSURL * url = [NSURL URLWithString: @ "a"]; sana bir geri dönecek. http://stackoverflow.com/questions/1471201/how-to-validate-an-url-on-the-iphone –

2

Karşılaştığım alternatif bir çözüm. Bunu yapabilirsin.

NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:@"yourstring"]]; 
bool valid = [NSURLConnection canHandleRequest:req]; 

Kaynak: doğru yönde beni işaret için https://stackoverflow.com/a/13650542/2513947

İlgili konular