Конфликтующие модификаторы распределенных объектов для типа параметра в 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 выдает предупреждение?

Теперь это просто предупреждение, и ничего не вылетает. Я думаю, что это мое личное ОКР, которое я хочу исправить.

Tx


person Vincent    schedule 22.07.2012    source источник
comment
Вы исправили это? У меня такая же проблема.   -  person Mihai Fratu    schedule 30.07.2012


Ответы (1)


(CGPoint *)targetContentOffset следует читать (inout CGPoint *)targetContentOffset, чтобы соответствовать объявлению в протоколе, который вы пытаетесь реализовать. См. документацию по протоколу здесь: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollViewDelegate_Protocol/Reference/UIScrollViewDelegate.html

К вашему сведению: in, out, inout, byref, bycopy и oneway вместе известны как «модификаторы распределенных объектов». Они похожи на аннотации, которые сообщают компилятору (или читателю, или системе документации), как вы собираетесь использовать параметры функции. В этом случае targetContentOffset указывает на CGPoint, значение которого используется, а затем изменяется: это и параметр in, и параметр out. Clang хочет убедиться, что вы это знаете, поэтому, если вы не сказали Clang «да, я знаю, что это параметр inout», Clang покажет вам это предупреждение.

person Quuxplusone    schedule 02.09.2012