2013-03-02 2 views
2

밑줄을 사용하여 "로컬 선언이 인스턴스 변수를 숨 깁니다"라는 컴파일러 경고를 읽었지만 수정을 구현할 수 없었습니다. 내가 읽은 솔루션은 내 .h 파일에서 밑줄을 사용하고, @synthesize는 내 .m 파일에서 부분을 사용한다고 말합니다. 그러나, 내 tableView 합성하지 않습니다.로컬 선언이 인스턴스 변수를 숨 깁니다. - tableView가 합성되지 않았습니다.

.H 파일

@interface ListViewController : GAITrackedViewController <UISearchDisplayDelegate, 
UISearchBarDelegate, UITableViewDataSource, UITableViewDelegate> { 

IBOutlet UITableView *tableView; 

} 

하는 .m 파일

//SYNTHESIZE 
@synthesize listItems, filteredListItems, savedSearchTerm, savedScopeButtonIndex, 
searchWasActive, mapView, loadingImageView, loadingActivity; 



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 

//FIRST WARNING for tableView HERE 

if (tableView == self.searchDisplayController.searchResultsTableView){ 
    return [self.filteredListItems count]; 
    } 
    else{ 
     return [self.listItems count]; 
    } 
} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 

    //SECOND WARNING for tableView HERE 

    [tableView setRowHeight: 60.00]; 
    return 1; 

} 

답변

3

변경 :

IBOutlet UITableView *tableView; 

사람 : 내 아래 헤더 파일을 참조하시기 바랍니다

IBOutlet UITableView *tableView1; 

.m 파일에도 동일한 필수 변경 사항을 적용하십시오. 이름 tableViewUITableView의 참조가

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

와 같은 이름을 준 :이 경고는 아래의 대리자 메서드로 인해오고있다. 이 변수의 범위는 함수 수준입니다. 여기서 변수 선언 범위는 .h에서 클래스 수준입니다.

+1

될 수 있습니다> 방문에 대한 자세한 내용

IBOutlet UITableView *tableView1; 

일반적으로 당신은 변경으로 위임 및 데이터 소스의 인수 이름을 변경 이동 어떤 종류의 문제가 생겼을 때, 마치 다른 클래스를 형성하는 것처럼 말입니다. –

6

당신은 tableView라는 콘센트/속성이 있으며 대리자 메서드에는 tableView도 포함되어 있습니다.

그래서 둘 중 하나를 변경해야합니다. 일반적으로 대리자 및 데이터 소스의 인수 이름을 다음과 같이 변경합니다.

- (NSInteger)tableView:(UITableView *)aTableView 
numberOfRowsInSection:(NSInteger)section { 
0

동일한 이름을 사용하지 마십시오. IBOutlet UITableView * tableView; tableview 또는 table_View를 사용하십시오.

0

또한이 문제에 많은 시간을 할애합니다. 마지막으로이 문제를 해결할 수 있습니다. 우리가 만든 콘센트를 처리해야합니다. 당신이 콘센트 이름을 바꾼다면 변경 후에 제대로 연결해야합니다. 많은 경우 많은 어려움 끝에이 문제를 끝낼 수 있습니다. 다른 사람들을 도울 수 있기를 바랍니다 .... 예를 들어 tableView 및 대리인이라는 콘센트/속성 메서드는 또한 tableView가 포함되어 있습니다.

그래서 둘 중 하나를 변경해야합니다.

IBOutlet UITableView *tableView; 

사람 :이 링크 - 아울렛 이름을 변경하기로 Local Declaration Hides Instance Variable - tableView Not Synthesized

관련 문제