언어 응용 프로그램을 만들고 있는데, 그 언어와 관련된 어휘 목록이 많습니다 (관심이있는 경우 독일어). 필자는 앱에서 테이블 뷰를 독일어 단어별로 정렬하거나 영어 단어별로 정렬하는 기능을 가지고 있습니다. 배열을 정렬 할 때 특정 문자열을 무시합니다.
나는 다음과 같은 사용
: 절대적으로 완벽하게 작동NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:type];
NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSArray *array = [[string componentsSeparatedByString:@"\n"] sortedArrayUsingSelector:@selector(compare:)];
-하는 내 말은, 정확히 예상대로. 그러나 이것에 대해 개선하고 싶은 점은 동사 나 명사와 같은 특정 단어가 있으며, 앞에는 항상 "to"와 같은 접두어가 붙거나 "something"이나 "the"앞에 명사. 그래서 내가하고자하는 것은 어떻게 든 내 정렬에서 이들을 제외 시키는데, 왜냐하면 그렇지 않으면 결국 모든 배열이 매우 익숙하지 않은 내 배열의 "t"섹션 아래에서 알파벳 순으로 정렬되기 때문입니다.
NSString 및 NSArray에 대한 Apple 설명서를 살펴 보았습니다. 여기서는 compare
기능이 (내가 잘못 생각한 경우가 아니라면) 어디서나 볼 수 있으며, 나에게 맞는 방법을 찾지 못했습니다. 이런 식으로 데이터를 처리 한 것은 이번이 처음이므로 무언가 간단하지 않을 수 있습니다. 그래서 도움을 주시면 감사하겠습니다.
정말 감사합니다
Michaeljvdw는
이것은 내가 원하는 것처럼 보이지만 replaceOccurrencesOfString을 말할 때 약간 혼동 스럽습니다. @ "das"withString @ ""... 왜냐하면 실제로 "das" (등) 배열에 머물고, 난 그냥 정렬에서 무시해야합니다. 이 코드가 해결할 수 있습니까? 도중에 답해 주셔서 고마워요, 당신의 도움에 감사드립니다. – Michaeljvdw
네, 그 코드가 실제로하는 일은 비교되는 문자열의 복제본을 만든 다음 기사와 공백을 제거하도록 수정합니다. 그것은 말하자면, 문자열을 수정하는 것이 아니라, 성능상의 이유 때문에 두 문자열의 하위 범위를 비교하기 위해 대신'compare : options : range : locale :'을 사용하는 것이 더 바람직 할 수도 있습니다. –