Chcę uzyskać zakresy członków w ramach NSString
zbudowanej przy użyciu +[NSString stringWithFormat:]
. Jaki jest najlepszy sposób na przeanalizowanie ciągu znaków "cel-c"? Nie mogę po prostu użyć parsera ciągów w formacie C z powodu %@
. Ja też należy upewnić się, że obsługuje format uporządkowania: %1$d
, %[email protected]
itpParse Objective-C printf Ciągi formatów?
Na przykład z łańcucha zbudowanego z [NSString stringWithFormat:@"foo %[email protected] bar %[email protected]", @"Heath", @"Borders"]
, chciałbym idealnie jak na poniższym NSArray
: @[NSMakeRange(15, 5), NSMakeRange(4, 6)]
. Pierwszy obiekt tablica odnosi się do pierwszego elementu danych w ciągu formatu, druga tablica obiektu do drugiego elementu danych, itp
W tym przypadku API będzie wyglądać + (NSString *) stringWithFormatRanges:(NSArray **)outFormatRanges withFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
Byłoby zwracać NSString
jak +[NSString stringWithFormat:]
, ale zwróci również wartość NSArray
dla każdego elementu danych formatu.
- EDIT -
Biorąc pod uwagę, że kwestia ta ma 3 lata, byłbym zadowolony z realizacji C-tylko w tym punkcie.
Analizowanie sposobu, jaki jest twój dokładny wymóg ... proszę wyjaśnić. –
Co masz na myśli przez "zakresy członków?" Chcesz powiedzieć, że chcesz przeanalizować podłańcuchy takie jak "% @", "% 1 $ d" i "% 2 $ @"? – trudyscousin
Wydaje mi się, że najpierw wyodrębnisz poszczególne elementy formatu, być może z RE, następnie napiszesz kod, aby je sprawdzić i sklasyfikować. –