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:'の実装におけるパラメータータイプでの競合する分散オブジェクト修飾子

完全には理解しておらず、問題を解決できないヒントをいくつか見つけました。 シングルトンリリース方法は警告を生成しますか?

今では単なる警告であり、何もクラッシュしません。これを修正したいのは私の個人的なOCDだと思います。

Tx

4

1 に答える 1

4

(CGPoint *)targetContentOffset(inout CGPoint *)targetContentOffset実装しようとしているプロトコルの宣言と一致するように、 を読む必要があります。ここでプロトコルのドキュメントを参照してください: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollViewDelegate_Protocol/Reference/UIScrollViewDelegate.html

参考までに: inoutinoutbyrefbycopy、およびonewayは、まとめて「分散オブジェクト修飾子」として知られています。それらは、関数パラメーターをどのように使用するかをコンパイラー (またはリーダー、またはドキュメンテーション・システム) に伝える注釈のようなものです。この場合、targetContentOffset値が使用されてから変更される CGPoint を指します。inこれはパラメーターでもありoutます。Clang は、ユーザーがこれを認識していることを確認する必要があるため、Clang に「はい、それがパラメーターであることはわかっていinoutます」と伝えていない場合、Clang はその警告を表示します。

于 2012-09-02T19:23:38.920 に答える