7

Xcode 4スタティックアナライザは、このメソッドが、そうでないように見える場合に、このメソッドをオーバーリリースされた戻り値を持つものとしてフラグを付けます。XcodeスタティックアナライザとcopyWithZone

returnキーワードからそれに続く式を指す矢印と、その式からアナライザーの警告への矢印があります。ここで、静的分析で:

  • -autoreleaseメッセージを送信

    1. 方法+1とObjective-Cのオブジェクトはカウント
    2. オブジェクトを保持して返すオブジェクトに転送(単一保持カウント所有基準として呼び出し元に返さ呼び出し側)
    3. オブジェクトが0(非所有して呼び出し元に返さ)+0で、カウント
    4. オブジェクトを保持カウントが+1(所有)のカウントが
    期待される保持場所を呼び出し側に返さ保持する該

    スタティックアナライザが正しくないか、このコードに問題がありますか?リクエストにより、


    -initWithURL:postString:方法:

    - (id)initWithURL:(NSURL *)u postString:(NSString *)p 
    { 
        if ((self = [super init])) 
        { 
         self.url = u; 
         self.postString = p; 
        } 
        return self; 
    } 
    

    私もプロジェクトをクリーニングし、再構築した後、この警告を取得し続けます。

    アップデート: Xcodeスタティックアナライザは、Xcode 4.2にアップグレードした後、これを問題としてフラグを立てなくなりました。

  • +0

    うーん...あなたもinitWithURL:postString:メソッドを投稿できますか? – spacehunt

    +0

    @spacehunt:質問を更新しました。 – titaniumdecoy

    +0

    @ Jason:私はちょうど上記を使って新しいクラスを作成しましたが、これをXcode 4.0.2と複製することはできません。 「2. Object sent autorelease」分析をクリックすると、どの矢印が強調表示されますか? – spacehunt

    答えて

    3

    これはXcodeのバグです。コードは問題ありません。

    +0

    これは、Xcode 4.2がこのコードを問題としてフラグを立てなくなったためです。 – titaniumdecoy

    関連する問題