@interface Connections()
{
static Connections *this;
}
@end
コンパイラエラーをスローする.mファイルの上記のコード
タイプ名では、ストレージクラスを指定できません
同時に
静的
キーワードが削除され、それはうまく機能します-それはとても明白です。目的:「Connections」インスタンスを静的およびプライベートにします。
この動作はなぜですか、助けてください。
@interface Connections()
{
static Connections *this;
}
@end
コンパイラエラーをスローする.mファイルの上記のコード
タイプ名では、ストレージクラスを指定できません
同時に
静的
キーワードが削除され、それはうまく機能します-それはとても明白です。目的:「Connections」インスタンスを静的およびプライベートにします。
この動作はなぜですか、助けてください。
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;
}
(そして、.h ファイルに宣言を追加する必要があります):
+ (Connections *)sharedInstance;