5

我正在使用滚动视图,并实现委托方法。

-(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:”的实现中参数类型上的分布式对象修饰符冲突

我发现了一些我不完全理解的提示,也没有解决我的问题。 单例释放方法产生警告?

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

发送

4

1 回答 1

4

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

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

于 2012-09-02T19:23:38.920 回答