-1

私が求めている質問は、別のオブジェクトのヘッダー ファイルの一部として宣言されているオブジェクトの値を宣言、参照、インスタンス化/初期化、および設定する方法です。

また、その他のヒントや提案は大歓迎です。


別のオブジェクト内で使用されるオブジェクトを作成しようとしています。私は非常に多くのバリエーションを試しましたが、明らかに何かが欠けています。

別のオブジェクト (wordMarker) を宣言したクラス (GameDetail) のヘッダー ファイルがあり、次のように参照します。

@class GameDetail;

// object used to store starting and ending letter for word selection
@interface wordMarker : NSObject

@property (nonatomic, assign) int row;
@property (nonatomic, assign) int col;
@property (nonatomic, assign) int position;
@property (nonatomic, assign) UIButton *button;

@end


@interface GameBoardViewController : UIViewController
{
    AppDelegate *objAppDelegate;

    wordMarker *startingLetter;
    wordMarker *endingLetter;
}
@property GameDetail *gameDetail;

@end

クラスファイルでは、次のバリエーションを試しました。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        startingLetter = [wordMarker new];
        endingLetter = [wordMarker new];

    }
    return self;
 }

または同様の呼び出し

-(void)viewWillAppear:(BOOL)animated

...
  startingLetter = [[wordMarker alloc] init];

そして、これらのインスタンスを次のように参照します。

startingLetter.row = letterRow;
startingLetter.col = letterCol;
startingLetter.position = letterNum;
startingLetter.button = validButton;

これは、新しいオブジェクトを別のオブジェクトにカプセル化、初期化、および参照するための最良の方法のように思えましたが、明らかに私は何か間違ったことをしています。

ありがとう!!

4

1 に答える 1

2

あなたのコメントに基づいて、「コンパイル エラーが発生しました: "_OBJC_CLASS_$_wordMarker", referenced from ... linked command failed with exit code 1」、

を見逃していると思います@implementation wordMarker。実装なしでインターフェイスを宣言することはできません

于 2013-10-04T03:37:21.173 に答える