저는 앱에서 꽤 큰 View Controller를 가지고 있으며 몇 가지 기능을 카테고리로 분리하여 정리하고 싶습니다. 나는 범주를 구현하는 방법에 최대 읽기 및 내 .H (범주가 StatsVC + TableViewDelegate라고합니다)로카테고리 Ivars를 인식하지 못합니다.
#import "StatsVC.h"
@interface StatsVC (TableViewDelegate)
@end
. 내 Implemation은 다음과 같이 시작합니다
@implementation StatsVC (TableViewDelegate)
범주에
몇 번, 내가 읽고와 가정이 허용되는 원래 군 수업의 인스턴스 변수입니다 변수에 액세스 만에 바르의 모든 사용 이런 일이 왜
'Use of undeclared identifier 'iVar'
아무도 알고 있나요 : 범주이 오류 메시지가?
감사합니다.
감사 Caleb, ivars는 속성으로 생성 된 다음 합성됩니다. Category에있는 메소드는 모두 tableViewDelegate 메소드입니다. 다음은 그 예입니다 : @property (nonatomic, strong) Session * selectedSession; 수업에서 그 선언이다. 범주에서는 다음과 같이 액세스합니다. - (NSInteger) numberOfSectionsInTableView : (UITableView *) tableView { return (2 + [[selectedSession pieceSession] count]); } –
이 경우 ivars는 실제로 범주에서 선언되지 않습니다. 단지 .h 파일 만보고 ivars가 무엇인지 알 수있는 방법이 없습니다. 속성을 사용하기 때문에 직접 ivars에 액세스하는 대신 범주 메서드의 속성을 사용해야합니다. ivars에 직접 액세스하려면 클래스 인터페이스에서 직접 ivars에 액세스하십시오. – Caleb
고마워 Caleb,이 트릭을 않았다. 아쉽게도 카테고리에서 선언하지 않고 합성 된 ivars에 액세스 할 수 없습니다. –