2014-12-02 13 views
5

Mam wymóg sprawdzenia, czy ciąg zawiera konkretny ciąg znaków, czy też nie. W tym celu używam funkcji klasy NSString o nazwie c zawierającej łańcuchy znaków. Ta funkcja działa poprawnie w systemów iOS 8 bez rzucania wszelkiego rodzaju wyjątkiem, ale w przypadku ios7 to rzuca wyjątek nazwienierozpoznany selektor wysłany do wyjątku wystąpienia w iOS7

unrecognized selector sent to instance 

Użyłem spróbować & blok catch, aby zapobiec wyjątek ale może wiem, dlaczego tak się dzieje?

góry dzięki

+1

Czy możesz podać fragment kodu, którego użyłeś, aby uzyskać prawidłowe rozwiązanie? –

+0

proszę wklej kod, aby rozwiązać problem. – Esha

+0

Zobacz http://stackoverflow.com/questions/26410420/nsstring-containsstring-crashes –

Odpowiedz

14

Możesz sprawdzić w nagłówku ramy. enter image description here

- (BOOL)containsString:(NSString *)aString NS_AVAILABLE(10_10, 8_0); 

Ta metoda containsString istnieją tylko po iOS 8 tak oczywistych, że będzie rzucać błąd w iOS7 ....

proszę skorzystać z poniższego sposobu ios7 i można go używać dla systemów iOS 8 powyżej metody :

if ([string rangeOfString:@"bla"].location != NSNotFound) 
{ 
    NSLog(@"charecter found"); 
} 

Być może może to rozwiązać twój problem. Dzięki

+0

Tak, powiedziałeś to dobrze. –

+1

Tak, jest. zawiera funkcjęString dodaną w iOS 8. Nie możemy jej użyć w iOS 7. –

2

Sprawdź czy String pobierane z tablicy nie jest nil. To rozwiąże twój problem.

Użyj następującego kodu, który może rozwiązać twój problem.

NSString *Test=arr_sub[0]; 
if(Test!=nil && [Test containsString:@"::"]) 
{ 
    NSlog(@"charecter found"); 
} 

Daj mi znać, jeśli napotkasz inny problem.

+1

'NSString * strn = @" moje vals "; if ([strn containsString: @ "va"]) { NSLog (@ "GOT IT RE ..."); } 'Ta funkcja działa w ios8, ale generuje wyjątek w iOS7. Tablica – Esha

+0

nigdy nie jest pusta –

+1

Myślę, że ta funkcja została dodana w ios8 i nie działa w ios7, dlatego właśnie rzuca wyjątek. Sprawdziłem oba ios8 i ios7 –

Powiązane problemy