1

私はこれを検索して実際にたくさんの結果を見つけましたが、私はこれに非常に初心者なので、私の特定のケースで彼らの答えを使用するのに問題があります。

私のコード:

  + (NSUInteger)maxRank { return [self rankStrings].count - 1; }

  - (void)setRank:(NSUInteger )rank {
      if(rank <= [PlayingCard maxRank]) {
          _rank = rank;
      }
  }

「selfrankStrings」は、いくつかの文字列を含む単なる配列です。

もちろん、ifステートメントはエラーを出す行です。エラーがどのように発生するかを理解できません。実際、スタンフォード大学のPaulという男性からのレッスンに従っています。これは彼のコードですが、唯一の違いは彼の仕事と私のものではありません。

私が理解しているように、maxRankは(ポインターではなく)NSUIntegerを返し、「rank」のセッターでは、「rank」もポインターではありません。私はそれを取得しません。ランクプロパティは次のようになります。

@property (nonatomic) NSUInteger rank;

うまくいけば、誰かが答えを思い付くことができ、これのために私の自己が頭痛の種になりました。

4

1 に答える 1

2

プロパティmaxRankは、.hファイルでポインターとして宣言されました。プロパティ宣言の*を削除すると、修正されました。

于 2013-02-27T10:53:36.777 に答える