여기 내 코드에서 ROBOTS.TXT 파일을로드하고 "허용 안 함"문자열로 필터링하려고합니다. 그런 다음 해당 줄에 "문자열 허용 안함"이 있으면이 문자열을 삭제하고 나머지 줄을 반환합니다. 여기 NSString에서 Characters를 삭제하는 중 오류가 발생하는 이유는 무엇입니까?
robots.txt에User-agent: *
Disallow:/search
Disallow: /groups
Disallow: /images
Disallow: /catalogs
Allow: /catalogs/about
Disallow: /catalogues
Disallow: /news
Allow: /news/directory
샘플이고, 여기서 I는이 코드이다
NSRange range;
NSURL *url=[NSURL URLWithString:@"http://www.google.com/robots.txt"];
NSString *content = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSArray *parsed = [content componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
NSMutableArray *robots=[[[NSMutableArray alloc] init] autorelease];
NSMutableString *line= [[[NSMutableString alloc] init] autorelease];
for(line in parsed){
range=[line rangeOfString:@"Disallow"];
if (range.location != NSNotFound) {
[line deleteCharactersInRange: NSMakeRange(1,9)];
[robots addObject:line];
}
}
을 여기 에러이다
* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to mutate immutable object with deleteCharactersInRange:'
참고;'더 명확하고 간단하게 기록 될 수 있습니다 :'[NSMutableArray를 배열]'편익 방법이 도움이 될 수 있습니다 깨끗한 코드를 작성하고 ARC 및 비 ARC 코드에서 사용할 수 있습니다. – zaph
http://stackoverflow.com/questions/1242335/categories-for-nsmutablestring-and-nsstring-causing-binding-confusion이 질문은 귀하의 질문과 관련이있을 수 있으며 귀하의 질문에 대한 답변 일 수 있습니다. 희망이 도움이 – BWC