다음 코드는 몇 가지 문제를 일으키는 것입니다. 세 번째 줄은 프로그램 충돌을 일으 킵니다 ... 프로그램을 처음 밟을 때 발생하지는 않지만 나중에 프로그램에서 발생합니다. 세 번째 줄을 주석으로 처리하면 프로그램이 원활하게 실행됩니다. '내가 할 수있는 ... 사람이 어떻게 다른 일반 언어처럼 목표 - C에서 문자열을 연결하는 말해 줄 수, 보조 노트에Objective-c 문자열 추가 원인 예외
*** -[CFString release]: message sent to deallocated instance 0xb4c43fe0
:
NSString *myRequestString = @"text";
int i = 1;
myRequestString = [myRequestString stringByAppendingString:[NSString stringWithFormat: @"t=%d", i]];
그 코드는이 예외가 발생합니다 연결 연산자가 없다고 생각하지 마십시오.
모든 도움을 주시면 대단히 감사하겠습니다.
알다시피,'-stringByAppendingFormat :'을 사용할 수 있습니다. – kennytm
그 팁 주셔서 감사합니다,하지만 그것을 전환했지만 여전히 예외가 발생합니다. –
해당 줄에서 예외가 발생했는지 또는 코드의 다른 곳에서 예외가 발생 했습니까? 'someString'이 이미 할당 해제 된 후에 (또는 카운트가 0 인) 당신 (또는 뭔가)이'[someString release]'를 호출하고 있음을 나타냅니다. 또한 'stringByAppendingString'은 NSString의 * new * 인스턴스를 반환하므로 원래 인스턴스 인'myRequestString'을 유출하고 있습니다. 당신은'myRequestString = [[myRequestString autorelease] stringByAppending ......] '으로 해결할 수 있습니다. –