2010-07-01 5 views
0

제목과 indexReference를 보유하는 개체가 있습니다. 개체를 배열에 저장하면 제대로 작동합니다.개체 제목 변수를 얻으려고하면 인식 할 수없는 선택기가 인스턴스로 전송됩니다.

그런 다음 배열에서로드하고 tableview를 채 웁니다.

이 코드를 사용합니다. 42 : 46.386 매일 견적 [1308 : 207]

//fill it with contents 
SavedFav *temp = [tableViewData objectAtIndex:indexPath.row]; 
cell.textLabel.text = temp.title; 

그때

2010-07-01 15 다음

같은 오류 얻을 인해 캐치되지 않는 예외에 *** 응용 프로그램을 종료 '를 NSInvalidArgumentException' , 이유 : '- [NSCFString title] : 인스턴스 0x23f6688로 전송 된 인식 할 수없는 선택자'

이 문제의 원인은 무엇입니까?

미리 감사드립니다.

답변

1

"temp"는 분명히 문자열입니다. 따라서 tableViewData에 문자열을 채우거나 (인식 할 수없는) 문자열에서 제목을 얻으려고하거나 더 이상 보지 않고 메모리에 문제가있는 경우 너무 많은 답이 있습니다 코드를 말하기가 어렵습니다. 그러나

cell.textLabel.text = temp;

을 시도하고 당신에게 좋은 리드를 줄 것이다, 안에 무엇이 확인.

+0

아니요, temp는 NSString * 제목과 int indexReference가있는 객체입니다. 그래서 개체에서 제목을 가져 와서 셀에 할당하려고합니다. 그것이 오류의 출처입니다. – jarryd

+0

temp는 포인터입니다. 클래스 인스턴스를 가리키며 이론적으로 모든 클래스 인스턴스가 될 수 있습니다. 구체적인 경우에는 확실히 문자열입니다. 왜 그것이 문자열인지, 문자열 제목이 들어있는 객체가 아닌지 알아 내야합니다. 이를 위해 cell.textLabel.text = temp를 시도하십시오. 세포에서 보이는 것을 말하십시오. –

+0

아니요, 'temp'는 NSString입니다. 당신이 그것의 객체가 될 수 있습니다 * 될 수 있습니다,하지만 그것은 NSString이야. 오류 텍스트에서'- [NSCFString title]'으로 알 수 있습니다. '-title' 메시지를'temp' (코드에서'temp.title')로 보냅니다. 그러나'temp'는 실제로 NSString입니다. 이것은 두 가지를 의미합니다 : 1) Alexander Voloshyn의 지시에 따라 '임시'에있는 것을 찾습니다. 2) 코드에 객체를 추가 할 때 문자열을 배열에 추가하는 버그가 있습니다. – CajunLuke

관련 문제