2012-07-22 1 views
5

저는 scrollview를 사용하고 있고 대리자 메서드를 구현하고 있습니다.Scrollview의 매개 변수 유형에 분산 된 개체 수정 자가 충돌합니다.

-(void) scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(CGPoint *)targetContentOffset{ 
    CGPoint p = *targetContentOffset; 
    int counter = [self counterForPosition:p]; 
    *targetContentOffset=[self positionForCounter:counter];; 
    //load month -2; 
    self.month=counter-2; 
} 

Xcode에서 경고 메시지가 표시됩니다. 'scrollViewWillEndDragging : withVelocity : targetContentOffset :'구현시 매개 변수 유형의 분산 객체 수정 자 충돌이 발생했습니다.

일부 힌트를 발견 했으므로 아직 완전히 이해하지 못했으며 문제가 해결되지 않았습니다. Singleton release method produces warning?

이제 경고 일 뿐이며 오류가 발생하지 않습니다. 내 개인 OCD라고 생각합니다.이 문제를 해결하고 싶습니다.

텍사스

+1

해결 했습니까? 나는 똑같은 문제를 겪고있다. –

답변

4

(CGPoint *)targetContentOffset 당신이 구현하려는 프로토콜의 선언에 맞게, (inout CGPoint *)targetContentOffset을 읽어야합니다. 여기 프로토콜에 대한 문서를 참조하십시오 : http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollViewDelegate_Protocol/Reference/UIScrollViewDelegate.html

참고 : in, out, inout, byref, bycopyoneway가 공동으로 "분산 객체 수정"으로 알려져있다. 그것들은 컴파일러 (또는 독자 또는 문서 시스템)에게 함수 매개 변수를 어떻게 사용할지 알려주는 주석과 같습니다. 이 경우 targetContentOffset은 값이 사용 된 다음 수정 된 CGPoint를 가리 킵니다.이 값은 모두 inout 매개 변수입니다. Clang은 이것을 알고 있는지 확인하기를 원합니다. Clang에게 "yes, 나는 그것이 inout 매개 변수라는 것을 알고 있습니다."라고 말하지 않았다면, Clang이 경고를 표시합니다.

+0

당신은 똑똑한 쿠키입니다! – Vincent