2011-10-20 2 views
0

나는 내 아이폰 앱을 만들지 않는 몇 줄의 코드에 문제가있다. 그것은 BNR의 새로운 "Objective-C Programming"책에서 교훈의 일부입니다. 방금 킨들에 나온 이래로 (인쇄물조차도 안됨), 아직 부록이나 수정 사항이 없습니다.테이블보기에서 행 선언 : "예상 됨", ' 메소드 프로토 타입 후에 "

일부 구문 오류가있는 것으로 추측하고 있습니다. 추가 할 필요가있는 코드가 전후에 있다면 알려주십시오.

감사합니다.

- (NSInteger)tableView:(UITableView *)tableView 
numberOfRowsInSection:(NSInteger)section 
{ 
    // Because this table view only has one section, 
    // the number of rows in it is equal to the number 
    // of items in our tasks array 
    return [tasks count]; 
} 

편집 : 사람들은 그래서 페이스트 빈에 추가거야 좀 더 많은 코드를 요구하고있다 - 여기 페이지를 스팸하고 싶지 않아요. Here's 헤더 파일 here's 메소드 파일.

+0

일부 다른 코드가 해당 오류의 원인입니다. 이 코드는 유효한 obj-c입니다. 문제에 대해 좀 더 많은 코드를 게시하십시오. – logancautrell

답변

1

tableView 데이터 소스 메서드는 (.h 파일)이 아닌 @implementation 블록 (.m 파일)에 있어야합니다. .h에서 코드를 잘라내서 .m 파일로 옮기면됩니다.

+0

동일한 대답이 두 번 나타 났음을 알았지 만 .m/.h 파일 사이에 명확한 설명이 필요했습니다. 감사! 이 재료와 모든 비트를 배우는 것은 여전히 ​​중요합니다. – Kristian

+0

정확히 47 분 일찍 내 대답은 말했다 :( –

0

.h 파일과 .m 파일이 섞여있는 것 같습니다.

.h에 헤더를 선언하고 .m에 구현을 선언했는지 확인하십시오.

0

게시 한 코드가 문제가없는 곳에서 잘 보입니다. 오류에서 헤더 파일에 메서드 선언의 끝에 ;이 누락 된 것 같습니다. 또한 메서드가 @implementation ClassName … @end 블록 안에 정의되어 있는지 확인하십시오.

0

이 코드가 @interface 블록에있는 것처럼 들리지만 선언 만 할 수 있습니다. @implementation 블록에 있어야합니다.