在Objective-C中初始化和引用对象

时间:2013-10-04 00:11:32

标签: ios objective-c

我问的问题是 - 如何在声明为另一个对象头文件的一部分的对象中声明,引用,实例化/初始化和设置值。

并且,当然欢迎任何其他提示/建议。


我正在尝试创建另一个对象中使用的对象。我尝试了很多变化,显然遗漏了一些东西。

我有一个类(GameDetail)的头文件,我在其中声明了另一个对象(wordMarker),并按如下方式引用它:

@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;

这似乎是封装,初始化和引用另一个新对象的最佳方式,但显然我做错了。

谢谢!

1 个答案:

答案 0 :(得分:2)

根据您的评论,“我收到编译错误:"_OBJC_CLASS_$_wordMarker", referenced from ... linked command failed with exit code 1”,

我认为你错过了@implementation wordMarker。 没有实现

,您无法声明接口