如何初始化自定义类?

时间:2012-08-16 19:51:01

标签: iphone objective-c ios initialization

我的目标C非常生疏,真的不记得如何在创建时在自定义类中启动变量。

(id)init行上的所有错误:

  缺少

*类型说明符,默认为'int'(警告)

     

*类型名称需要说明符或限定符

     

*预期';'在声明清单的末尾

#import "Seat.h"

@implementation Seat
{
    (id)init
    {
        self = [super init];
        player = NULL;
        position = -1;
        state = "empty";
    }
}

@end

很抱歉,如果这看起来很简单,看起来很简单,我找不到太多内容。感谢

3 个答案:

答案 0 :(得分:5)

你遗漏了一些东西:

-(id)init // A minus says it's an instance method
{
    if (self = [super init]) { // You should check the return value of [super init]
        player = NULL; // Should this be nil?
        position = -1;
        state = "empty"; // Should this be @"empty"?
    }
    return self; // You need to return self
}

如果player是Objective C对象,而不是C指针,则更常规的是分配nil而不是NULL。对于字符串文字也是如此:如果stateNSString *,则应为其分配@"empty"

哦,并且@implementation不应该用大括号括起来:@end标记足以找到实现块结束的位置。

答案 1 :(得分:5)

在右侧实用程序部分,检查下半部分代码段库。 搜索'init'关键字。拖放代码

enter image description here

答案 2 :(得分:3)

你有一套花括号太多了。你还需要从init返回self(并且大多数人都会检查来自[super init]的非零结果。)

@implementation Seat

(id)init
{
    self = [super init];
    if (self) {
      player = NULL;
      position = -1;
      state = "empty";
    }
    return self;
}

@end