2012-07-22 8 views
5

Używam przewijania i implementuję metodę delegowania.Konfliktowe modyfikatory obiektów rozproszonych na typ parametru w 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; 
} 

Otrzymuję ostrzeżenie przez Xcode. Sprzeczne modyfikatory obiektów rozproszonych na typ parametru w implementacji 'scrollViewWillEndDragging: withVelocity: targetContentOffset:'

Znalazłem wskazówki, których nie w pełni rozumiem i nie rozwiązuję problemu. Singleton release method produces warning?

Teraz to tylko ostrzeżenie i nic się nie wywala. Myślę, że to mój osobisty OCD, który chcę to naprawić.

Tx

+1

Naprawiłeś to? Mam ten sam problem. –

Odpowiedz

4

(CGPoint *)targetContentOffset powinien przeczytać (inout CGPoint *)targetContentOffset, aby dopasować oświadczenia w protokole, że starasz się wdrożyć. Zobacz dokumentację dla protokołu tutaj: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollViewDelegate_Protocol/Reference/UIScrollViewDelegate.html

FYI: in, out, inout, byref, bycopy i oneway są zbiorczo określane jako "obiekt" rozproszonych modyfikatorów. Są to podobne adnotacje, które informują kompilator (lub czytelnika lub system dokumentacji), w jaki sposób zamierzasz używać parametrów funkcji. W tym przypadku targetContentOffset wskazuje na CGPoint, którego wartość jest używana, a następnie modyfikowana: jest to zarówno parametr in, jak i out. Clang chce mieć pewność, że to wiesz, więc jeśli nie powiedziałeś Clang "tak, wiem, że jest to parametr inout", Clang pokaże Ci to ostrzeżenie.

+0

Jesteś inteligentnym ciastkiem! – Vincent