调用单例方法时出现预期的标识符错误 iOS

Expected identifier error when calling a singleton method iOS

我正在尝试从 class 调用一个方法,该方法在另一个 class 上使用单例模式。我正在使用一个教程,该教程不使用效果很好的单例,但我似乎无法实现我需要的东西。我不断收到一条错误消息,指出“预期标识符”。我假设这可能是语法问题,但我似乎无法解决它。 POI 是来自核心数据的 NSManagedObject subclass。

这是我使用单例的版本。错误指向DataSource前的括号。

NSArray *itemGroups = [POI [DataSource sharedInstance] fetchDistinctItemGroupsInManagedObjectContext:managedObjectContext];

这是没有单例的等效项(来自教程)

NSArray *itemGroups = [POI fetchDistinctItemGroupsInManagedObjectContext:managedObjectContext];

你应该有这样的东西:[[POI sharedInstance] fetchDistinctItemGroupsInManagedObjectContext:managedObjectContext];

如果您希望能够以这种方式使用 POI class:

NSArray *itemGroups = [POI fetchDistinctItemGroupsInManagedObjectContext:managedObjectContext];  

那么我会建议添加这样的代码:

// POI.h
+ (NSArray *)fetchDistinctItemGroupsInManagedObjectContext:(NSManagedObjectContext *)context;

// POI.m
+ (NSArray *)fetchDistinctItemGroupsInManagedObjectContext:(NSManagedObjectContext *)context {
    return [[DataSource sharedInstance] fetchDistinctItemGroupsInManagedObjectContext: context];
}