0

私はobj Cを初めて使用し、非常に優れたC++のバックグラウンドを持っています。iOS 開発を開始し、View で使用するカスタム オブジェクトを作成しました。このカスタムオブジェクトは

    @interface GameData : NSObject{
    @private
        int Lives;
        ...
        bool isAnswered[5];
    };

    -(int)getLives;
    -(void)LivesPlusOne;
    ...
    -(void)increasePoints:(int)howManyPoints ;
    -(int)getMult;
    ...
    -(void)markAsAnswered:(int)idToRemove; //idToRemove is marked as answered
    -(bool)isMarkedAsAnswered:(int)idToCheck;
    @end

私の問題は、XCode は gameData.getLives のようなメソッドを認識してオートコンプリートしますが、そして、それらを問​​題なくコンパイルします(私は #import "GameData.h" を使用します)。次のようなパラメータを持つメソッドではありません。

    -(bool)isMarkedAsAnswered:(int)idToCheck;

どれが問題かもしれませんか?(すでに派生データを削除しようとしました (ウィンドウ -> オーガナイザー -> プロジェクト -> 派生データ -> 削除) が、何も変わりませんでした。

追加情報: ビューで gameData オブジェクトを使用しており、アクセサーとミューテーター (ゲッター/セッター) を介して "int Lives" ect を操作し、非常にうまく動作します。使えるようになったら

    [gameData.isMarkedAsAnswered:someInt] 

ビルド エラーが発生します。

入力してもオートコンプリートしません

    [gamedata.i

前もって感謝します、 ジョルゴス

4

1 に答える 1

0
[gameData.isMarkedAsAnswered:someInt]

C++とObjective-Cの構文を混同しています。ドットアクセサーを使用して、メソッドではなく宣言されたプロパティを参照します。以下を使用してください。

[gameData isMarkedAsAnswered:someInt];

実装上の問題により、メソッドに引数がない場合は、ドットアクセサーを使用して呼び出すことができますが、これは設計されたものではないため、すぐに停止する必要があります。

于 2012-07-27T14:12:13.817 に答える