2013-02-19 5 views
8
@interface Connections() 
{ 
    static Connections *this; 
} 
@end 

の.mファイル内のコードの上の部分を説明してください同時にときのObjective C - 宣言エラー - ストレージ・クラスがで</p> </blockquote> <p>を指定することはできませんコンパイラエラーに</p> <blockquote> <p>タイプ名を投げ

静的

キーワードは削除されています。 目的:「接続」インスタンスを静的および非公開にします。

なぜこの現象が起こっているのですか。

答えて

18

Objective-Cクラスでクラスレベル変数を宣言することはできません。代わりに、実装ファイルでそれらを「隠す」必要があります。外部にアクセスできないように、多くの場合、static -scopeを与えます。

Connections.m:

#import "Connections.h" 

static Connections *_sharedInstance = nil; 

@implementation Connections 

... 

@end 

そして、これはシングルトンである場合、あなたは通常、最初の使用時にシングルトンを作成するために、クラスレベルのアクセサを定義します。

+ (Connections *)sharedInstance 
{ 
    if (_sharedInstance == nil) 
    { 
     _sharedInstance = [[Connections alloc] init]; 
    } 
    return _sharedInstance; 
} 

(そしてあなた'LL .hファイルに宣言を追加する必要があります)。

+ (Connections *)sharedInstance; 
+0

objCクラスはdeclのみを使用できます。イバールズの、それは正しい? – Futur

+1

@Futurはい、そうです。 – trojanfoe

+0

ありがとうございます:) – Futur

関連する問題