2012-08-16 149 views
-3

我對我的目標C非常生疏,真的不記得如何在創建時在自定義類中啓動變量。如何初始化自定義類?

錯誤全部上(id)init行:

*類型說明符缺失,默認爲 'INT'(警告)

*類型名稱需要說明符或限定符

*預期「; 「在聲明列表

#import "Seat.h" 

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

@end 

對不起結束時,如果這看起來很簡單,但它似乎很簡單,我不能找到太多就可以了。由於

回答

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是客觀C的對象,而不是C指針,它是更傳統的分配nil,而不是NULL。字符串文字也是如此:如果stateNSString *,則應該爲其分配@"empty"

哦,並且@implementation不應該括在花括號中:@end令牌足以找到實現塊的結束位置。

3

你有一套花括號太多。您還需要從init返回自己(並且大多數人檢查[super init]的非零結果)。

@implementation Seat 

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

@end 
5

在右側的實用程序部分,檢查下半部分代碼段庫。 搜索'init'關鍵字。拖放代碼

enter image description here