2010-08-03 3 views
0

프로그래밍 이해에있어 가장 큰 문제는 특정 방법이 무엇인지 이해하는 것입니다. 예를 들어,목표 C 방법을 읽는 방법

- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex 

위의 방법을 보면 나는 그것이 부울을 반환하고 그 방법은 다음을 받는다는 것을 알고 있습니다.

  1. NSTableView는
  2. NSTableColumn
  3. NSInteger

그러나, 나는 제대로 된 방법을 사용하여 제공 할 필요가 무엇인지 이해하지 않습니다. 그냥 부울을 반환합니까?

답변

1

이 메서드는 테이블에서 특정 행과 열을 편집 할 수 있는지 알아야 할 때 위임자 (이 메서드를 구현하는 클래스)에서 테이블 (또는 무언가)에 의해 호출됩니다. YES 또는 NO을 반환하여 편집 가능 여부를 나타내면됩니다.

-(BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { 
    return NO; 
} 

이 테이블 편집되지 않을 수 있음을 의미합니다

는 예를 구현입니다. 이 같은

더 복잡한 구현은 첫 번째 행을 편집 할 수 있도록 것이다 : 그것은 아래 말에 제공

-(BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { 
    if (rowIndex == 0) 
     return YES; 
    else 
     return NO; 
    //This can be shortened to: 
    //return rowIndex == 0; 
} 
+0

YES 또는 NO를 반환해야하는 경우 return rowIndex == 1을 어떻게 사용할 수 있습니까? – lampShade

+0

'rowIndex == 1'은 함수가 반환되기 전에 평가됩니다. 그 문장은'true' ('YES') 또는'false' ('NO')이며 평가 된 값은 –

+0

입니다. @lampShade : 내 업데이트보기 및 @Paul W의 주석 –

1

: 코드는 의견이 왜 당신에게 방법을 알려줍니다.

메소드를 작성하는 경우, 메소드를 원하는 이유를 알고 그에 따라 문서화해야합니다 (a.k.a. 설명). 메서드를 재정의하는 경우 메서드의 제작자가 메서드가 수행하는 작업을 문서화하기를 바랍니다.

프로그래밍에 대한 배경 지식없이 iPhone 개발에 뛰어 들면 최소한 Introduction to The Objective-C Programming Language을 읽어야합니다. 특정 메소드가 코드에서 수행하는 작업을 찾으려면 메소드 이름을 마우스 오른쪽 버튼으로 클릭하고 "문서에서 텍스트 찾기"를 선택하여 자세한 내용을 읽어보십시오.

0

메서드 이름 tableView : shouldEditTableColumn : row : 테이블 뷰의 행 및 열 편집에 대한 단서를 제공해야합니다. 테이블 뷰로 결정하기 위해 호출 된 부울 값을 반환하기 때문에 제공된 열의 제공된 행을 편집해야한다고 생각할 수 있습니다. 그러나 그것은 단지 추측 일 뿐이므로,이 시점에서 (어제 그 메소드를 사용하지 않아서 정확히 무엇인지 알고 있다면) 나는 인터넷 검색을 시작할 것입니다 (또는 Xcode 검색을 사용하면 액세스 할 수 있습니다). Xcode).

Googling Cocoa 문서의 유용한 팁은 site : developer.apple.com에서만 검색하므로 site:developer.apple.com tableView:shouldEditTableColumn:row:을 사용해 보겠습니다. 이 경우의 최고 히트작은 우리가 원했던 NSTableViewDelegate입니다.