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的警告。在实现"scrollViewWillEndDragg:withVelocity:targetContentOffset:"时,参数类型上的分布式对象修饰符发生冲突

我发现了一些我不完全理解的暗示,也不能解决我的问题。Singleton释放方法产生警告?

现在这只是一个警告,没有任何崩溃。我想这是我个人的强迫症,我想解决这个问题。

Tx

(CGPoint *)targetContentOffset应该读取(inout CGPoint *)targetContentOffset,以匹配您试图实现的协议中的声明。请参阅此处的协议文档:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollViewDelegate_Protocol/Reference/UIScrollViewDelegate.html

仅供参考:inoutinoutbyrefbycopyoneway统称为"分布式对象修饰符"。它们有点像注释,告诉编译器(或读者,或文档系统)如何使用函数参数。在这种情况下,targetContentOffset指向一个CGPoint,该CGPoint的值被使用,然后被修改:它既是in参数,也是out参数。Clang想确保你知道这一点,所以如果你没有告诉Clang"是的,我知道这是inout参数",Clang会向你显示警告。

最新更新