-3

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

错误全部上(id)init线:

*缺少类型说明符,默认为“int”(警告)

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

*预期的 ';' 在声明列表的末尾

#import "Seat.h"

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

@end

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

4

3 回答 3

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
}

Ifplayer是一个 Objective C 对象,与 C 指针相反,它更传统地分配nil而不是NULL. 字符串文字也是如此:如果stateNSString *,您应该分配@"empty"给它。

哦,@implementation不应该用花括号括起来:@end令牌足以找到实现块的结束位置。

于 2012-08-16T19:52:44.273 回答
5

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

.在此处输入图像描述

于 2012-08-16T19:55:26.663 回答
3

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

@implementation Seat

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

@end
于 2012-08-16T19:54:01.000 回答