Objective c 子类化未按预期工作的单例

Objective c 子类化未按预期工作的单例,objective-c,afnetworking,nsobject,Objective C,Afnetworking,Nsobject,我正在编写一个与API通信的类。我首先创建了一个SessionManager: 我编写了几个类来扩展SessionManager。API中的每个实体一个:RestaurantManager、StreetManager和AreaManager。但是,当我使用其中一个,然后使用另一个时,它仍然会使用第一个 NSArray *restaurants = [[RestaurantManager sharedManager] getRestaurants]; // restaurants contain

我正在编写一个与API通信的类。我首先创建了一个SessionManager:

我编写了几个类来扩展SessionManager。API中的每个实体一个:RestaurantManager、StreetManager和AreaManager。但是,当我使用其中一个,然后使用另一个时,它仍然会使用第一个

NSArray *restaurants = [[RestaurantManager sharedManager] getRestaurants];

// restaurants contains all the restaurants

NSArray *streets = [[StreetsManager sharedManager] getStreets];

// streets still contains all the restaurants

有关如何解决此问题的任何想法?

您应该在子类中重写+idsharedManager方法。否则,它们将转到相同的sharedManager方法,并与相同的静态SessionManager变量交互。

只要不重写类方法,子类将始终使用相同的共享实例。
NSArray *restaurants = [[RestaurantManager sharedManager] getRestaurants];

// restaurants contains all the restaurants

NSArray *streets = [[StreetsManager sharedManager] getStreets];

// streets still contains all the restaurants