2013-02-28 5 views
-1

내가 정규 표현식을 사용한다 프로젝트를 가지고, 그래서 RegexKitLite을 사용하기로 결정, 나는 그것을 다운로드 "컴파일 소스"로 RegexKitLite.m을 추가하고, RegexKitLite.h을 "파일 복사"섹션에 추가하십시오. 라이브러리를 프로젝트에 추가하려면 libicucore.A.dylib이 추가되었습니다. 수입 내 수업에 RegexKitLite.h, 그리고 (단지 테스트) 코드 쓰기 : 나는RegexKitLite - 아이폰 OS : 인식 할 수없는 선택

-[__NSCFString isMatchedByRegex:]: unrecognized selector sent to instance 0x1ed45ac0 
2013-02-28 19:46:20.732 TextProject[8467:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString isMatchedByRegex:]: unrecognized selector sent to instance 0x1ed45ac0' 

을 놓친 무엇 : 그 후

 NSString *str = @"testing string"; 
     if ([str isMatchedByRegex:@"[^a-zA-Z0-9]"]) 
     { 
      NSLog(@"Some message here"); 
     } 

을 나는 오류 메시지가? 제발 도와주세요 ..

+0

u는 당신이 파일 헤더 선언 했 : 구현 파일에 # import를 "RegexKitLite.h을?" – tiguero

+0

내 헤더 클래스에 "RegexKitLite.h"를 가져 왔습니다. – LightNight

+0

이 lib는 MacOS에서만 사용할 수 있기 때문에 Mac OS 또는 iOS 용입니까? 또한 iOS에서 허용되지 않는 동적 라이브러리를 가져 오려고합니다. – tiguero

답변

1

일부 파고가 실제로 iOS4 전에 regex를 사용하는 코코아 API가 없었기 때문에 프로그래머는 실제로 iOS 용으로 사용될 수있는 RegexKitLite와 같은 외부 라이브러리를 사용하고있었습니다.

iOS4 이상이면 NSRegularExpression을 사용하지 않아야합니다. 클래스 참조 설명은 here입니다.

NSRegularExpression에 예를 들어 당신의 코드는 다음과 같이 표시됩니다

NSString *str = @"testing string"; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^a-zA-Z0-9]" options:NSRegularExpressionCaseInsensitive error:nil]; 
NSTextCheckingResult *match = [regex firstMatchInString:str options:0 range:NSMakeRange(0, [str length])]; 
NSRange range = [match rangeAtIndex:0]; 
if (range.location != NSNotFound) 
{ 
    NSString* matchingString = [str substringWithRange:range]; 
    NSLog(@"%@", matchingString); 
} 
관련 문제