Jak uzyskać ciąg przed pewną postacią w szybkim tempie? Poniższy kod jest taki, jak zrobiłem to w Celu C, ale nie mogę wykonać tego samego zadania w Swift. Wszelkie wskazówki lub sugestie, jak to osiągnąć? rangeOfString
wydaje się nie działać wcale w szybkim tempie (chociaż Swift znowu działa dla mnie).Swift: Jak uzyskać ciąg przed określoną postacią?
NSRange range = [time rangeOfString:@" "];
NSString *startDate =
[time substringToIndex:range.location];
Jak widać z kodu powyżej jestem w stanie uzyskać ciąg przed znak spacji w Objective C
Edit: Gdy próbuję coś takiego
var string = "hello Swift"
var range : NSRange = string.rangeOfString("Swift")
I uzyskać następujący błąd.
nie można przekonwertować typu wyrażenia za 'NSString' wpisać '(String, opcje: NSStringCompareOptions, zakres: Zakres ?, locale:? NSLocale)'
Nie wiem co zrobiłem źle dokładnie lub jak rozwiązać to poprawnie.
W [ta odpowiedź] (http: //przepełnienie stosu.com/a/24161872/2240769) również używają rangeOfString w Swift i wydaje się działać. –
Edytowałem moje pytanie, aby lepiej wyjaśnić, co się dzieje, gdy próbuję zastosować twoje rozwiązanie. –
Możesz użyć 'Range' zamiast' NSRange': 'let range: Range? = string.rangeOfString ("Swift") '. Możesz również rzucić 'String' na' NSString': 'var range: NSRange = (ciąg znaków jako NSString) .rangeOfString (" Swift ")' – albertamg