2012-07-22 5 views
5

私はscrollviewを使用しており、デリゲートメソッドを実装しています。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 release method produces warning?

これは単なる警告で、何もクラッシュしません。私はこれを修正したいのは自分のOCDだと思う。

Txが

+1

これを修正しましたか?私は同じ問題を抱えています。 –

答えて

4

(CGPoint *)targetContentOffsetあなたが実装しようとしているプロトコルで宣言を一致させるために、(inout CGPoint *)targetContentOffsetをお読みください。ここでのプロトコルのためのマニュアルを参照してください:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollViewDelegate_Protocol/Reference/UIScrollViewDelegate.html

FYI:inoutinoutbyrefbycopy、およびonewayを総称して "分散オブジェクト修飾子" として知られています。それらは、コンパイラ(または読者、またはドキュメンテーションシステム)に関数パラメータの使用方法を伝えるアノテーションのようなものです。この場合、targetContentOffsetは値が使用されて変更されたCGPointを指しています。これはinoutの両方のパラメータです。 Clangはあなたがこれを知っていることを確認したいので、もしあなたがClangに "はい、私はそれがinoutのパラメータであることを知っている"と言わなかったら、Clangはその警告を表示します。

+0

あなたはスマートなクッキーです! – Vincent