대용량 문자열을 제거하고 원래 문자열에 새 문자열을 다시 할당하여 조작하고 있습니다.문자열을 수정 한 후 EXC_BAD_ACCESS
articleString = [articleString stringByReplacingCharactersInRange:startRange withString:@""];
articleString는 인 NSMutableString가
이 잘 나는이 코드를 통해 이동 처음으로 작동하는 것 같다 유형의 인스턴스 변수입니다. 하지만 두 번째 시간부터 돌아가서 articleString 변수를 사용하면 EXC_BAD_ACCESS 예외가 발생합니다.
이들은 긴 문자열입니다 (최대 100K 바이트).
예외가 발생하는 이유는 무엇입니까? 우리가
내 생각 엔이 원래 변수에 할당 한 후 때문에 당신의 방법 블록 내부 autorelease
의 일이되고 있다는 것입니다 :) 무슨 일이 일어나고 있는지 알아낼 수 있도록
조심하세요! 'stringByReplacingCharactersInRange : withString :'은 변수를 선언 한 것과 관계없이 항상 불변의 문자열 ('NSString')을 반환한다는 것을 기억해야합니다. – dreamlax
감사합니다. replaceCharactersInRange를 사용하면 문제가 해결되었습니다. –