2009-11-11 6 views
0

URL의 GET ID를 기반으로 StackOverflow 질문을하는 테스트 iPhone0 응용 프로그램에 단추가 있습니다. 버튼을 누를 때마다 페이지가 다음 질문으로 다시로드됩니다.OBJC_MSGSEND NSString stringWithFormat의 오류

처음에 int count을 통해 GET ID의 수를 유지하고 버튼을 누를 때마다 증가합니다. 카운터의 사용을 허용하지 않습니다 분명히 NSString *urlAddress=[NSString stringWithFormat:@"http://stackoverflow.com/questions/1"];

작동하지만 :

사용하여 URL을 하드 코딩. 카운터를 다음과 같이 구현하려고 할 때

NSString *urlAddress =[NSString stringWithFormat: @"http://stackoverflow.com/questions/%@", count]; 

프로그램이 OBJC_MSGSEND 오류와 함께 실패합니다. 이 코드 줄이 작동하지 않는 이유는 무엇입니까?

* 디버깅했으며 이것이 오류를 일으키는 첫 번째 행입니다.

감사합니다.

답변

4

count는 (는) 개체가 아닙니다. 너 이 아니라 %@을 사용해야합니다. 형식 지정자로 %@을 사용하면 "description 메서드를 인수로 제공 한 개체로 보냅니다"를 의미합니다. 변수 count이 실제로 개체가 아니기 때문에 메시지를 보낼 수 없습니다.

코드는 (예 잘 보여 단축), 다음과 같다 : (거의)이 동일하다

NSString *s = [NSString stringWithFormat:@"something/%@", count]; 

가 :

NSString *s = [NSString stringWithFormat:@"something/%@", [count description]]; 

으로 당신이 상상할 수있는 런타임을 그 머리 또는 꼬리를 만들 수 없습니다 (count은 결국 int입니다). 이 형식을 사용하면 다음과 같이 작동합니다.

NSString *s = [NSString stringWithFormat:@"something/%d", count];