숫자를 검색하고 싶은 NSString이 있습니다. NSNumericSearch가 적절한 해결책이 될 것으로 보이지만 분명히 :, caseInsensitiveCompare :, localizedCompare : 및 localizedCaseInsensitiveCompare : iOS에서 가져 오기를 수행 할 때 정렬 선택자로 작동합니다. (핵심 데이터 프로젝트입니다). 이것은 SQLite 데이터 저장소를 사용하는 것과 관련이 있다는 것을 이해합니다.iOS 용 NSNumericSearch 솔루션
NSNumber 문자열을 캐스팅 시도했습니다. NSNumber는 기본적으로 int이므로 ARC에 오류가 있습니다.
요약하면 (1, 11, 2, 25)와 반대의 숫자로 문자열 (1, 2, 11, 25)을 정렬하고 싶습니다. 나는 어떤 해결책을 주셔서 감사하겠습니다.
.
.
편집 : (내가 멀리 시점에서 내 컴퓨터에서였다 위 죄송하며 서둘러..)
제한된 종류의 설명자에 대한 정보 Isted & 해링턴 2011 년의 마지막 페이지에서 온다 iOS 용 Core Data를 예약하십시오.
@interface NSString (SizeComparison)
-(NSComparisonResult)sizeCompare:(NSString*)otherString;
@end
@implementation NSString (SizeComparison)
-(NSComparisonResult)sizeCompare:(NSString*)otherString {
return [self compare:otherString options:NSNumericSearch];
}
@end
fetchedResultsCntroller의 종류의 설명은 다음과 같다 :
:이 오류를 반환
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"size" ascending:YES selector:@selector(sizeCompare:)];
대한 명확한
When doing a fetch with sort descriptors you'll need to restrict yourself to the following selectors on iOS: compare:, caseInsensitiveCompare:, localizedCompare:, localizedCaseInsensitiveCompare:.
는,이 같은 범주를 썼다 * 잡히지 않은 except로 인해 앱이 종료됩니다. 'NSInvalidArgumentException', 이유 : '지원되지 않는 NSSortDescriptor selector : sizeCompare :'
이것은 Isted & Harrington의 진술과 일치하는 것으로 보입니다.
또한 내가 NSNumber에 캐스팅했다고 말했을 때, 나는 간단하려고 노력했지만 분명히 분명하지 않았습니다. 이것은 내가 무슨 짓을 :
NSNumberFormatter *numformatter = [[NSNumberFormatter alloc] init];
numformatter.numberStyle = NSNumberFormatterNoStyle;
self.objectToEdit.size = [numformatter numberFromString:self.sizeTextField.text];
그래서, 수치있는 NSString를 정렬하고 싶습니다 (1, 2, 11, 25) (1, 11, 2, 25)에 반대. 나는 여전히 모든 해결책을 고맙게 생각합니다.
귀하의 질문에 이해하기가 약간 어렵습니다. 한 번 당신은 당신이 핵심 데이터를 가지고 있다고 말하는 것보다 NSString이 있다고 말합니다. 그리고 당신의 "요약"은 또 다른 것을 말합니다. 질문을 수정하고 코드 조각을 제공하십시오. 답변을 얻는 기회가 크게 증가합니다. – Krizz
NSNumber가 정수가 아닙니다. –
@ Krizz 당신 말이 맞아요. 그것은 비참한 게시물이었다. 나는 분명히하려고 애썼다. – Kurt