您employers的类方法正在引用_employers,这可能是您的类的实例变量。你不能这样做。此外,即使你做了一些草率的解决方法,比如全局变量,你也不能保证_employers已经实例化,除非employers类方法也确保sharedHelper调用了。
所以,有几个想法:
你真的应该有一些类属性employers(我假设你有,但为简洁起见省略了它,但让我们在此处包含它以消除歧义):
@interface MyHelper : NSObject
@property (nonatomic, strong) NSMutableArray *employers;
@end
 
我想你的init方法会初始化这个employers对象
- (id)init
{
    self = [super init];
    if (self) {
        _employers = [[NSMutableArray alloc] init];
    }
    return self;
}
 
您现有的sharedHelper方法非常好。
 
但是,如果您要使用employers类方法,则应访问employers实例方法:
+ (NSMutableArray *)employers
{
    return [[MyHelper sharedHelper] employers];
}
 
完成所有这些后,您的课程将如下所示:
@interface MyHelper : NSObject
@property (nonatomic, strong) NSMutableArray *employers;
+ (id)sharedHelper;
+ (NSMutableArray *)employers;
@end
@implementation MyHelper
+ (id)sharedHelper
{
    static MyHelper *sharedHelper = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken,^{
        sharedHelper = [[self alloc] init];
    });
    return sharedHelper;
}
- (id)init
{
    self = [super init];
    if (self) {
        _employers = [[NSMutableArray alloc] init];
    }
    return self;
}
+ (NSMutableArray *)employers
{
    return [[MyHelper sharedHelper] employers];
}
@end
这行得通,但话虽如此,但就风格而言,我个人不推荐使用类方法,employers如果您有一个用于同名属性的 getter 方法。似乎有点混乱。我将删除employers该类方法,并坚持使用将为您合成的标准 getter 方法,从而得到:
@interface MyHelper : NSObject
@property (nonatomic, strong) NSMutableArray *employers;
+ (id)sharedHelper;
@end
@implementation MyHelper
+ (id)sharedHelper
{
    static MyHelper *sharedHelper = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken,^{
        sharedHelper = [[self alloc] init];
    });
    return sharedHelper;
}
- (id)init
{
    self = [super init];
    if (self) {
        _employers = [[NSMutableArray alloc] init];
    }
    return self;
}
@end
然后使用这个类的其他代码MyHelper可以简单地引用[[MyHelper sharedHelper] employers]自己。