目标C - 声明错误 - 请解释

Fut*_*tur 8 objective-c ios

@interface Connections()
{
   static Connections *this;
}
@end
Run Code Online (Sandbox Code Playgroud)

上面这段代码在.m文件中抛出编译错误

类型名称不允许指定存储类

在同一时间

静态的

关键词被删除它运作良好 - 这是如此明显.目的:我希望"Connections"实例静态和私有.

为什么这种行为,请帮助.

tro*_*foe 18

您不能在Objective-C类中声明类级变量; 相反,你需要在实现文件中"隐藏"它们,通常给它们static-scope,以便它们不能在外部访问.

Connections.m:

#import "Connections.h"

static Connections *_sharedInstance = nil;

@implementation Connections

...

@end
Run Code Online (Sandbox Code Playgroud)

如果这是一个单例,你通常会定义一个类级访问器来在第一次使用时创建单例:

+ (Connections *)sharedInstance
{
    if (_sharedInstance == nil)
    {
        _sharedInstance = [[Connections alloc] init];
    }
    return _sharedInstance;
}
Run Code Online (Sandbox Code Playgroud)

(并且您需要在.h文件中添加声明):

+ (Connections *)sharedInstance;
Run Code Online (Sandbox Code Playgroud)