NSHashTable は、弱参照でオブジェクトを管理できるコレクションです。

シングルトンのオブジェクトが複数の Delegate を管理するときに使えそうです。これまでは NSMutableArray を使っていたので、今度からは NSHashTable を使ってみようと思います。

- (instancetype)init
{
  (中略)
  self.observers = [NSHashTable weakObjectsHashTable];
  (中略)
}

- (void)addObserver:(id<HogeHogeDelegate>)observer
{
    if (![_observers containsObject:observer]) {
        [_observers addObject:observer];
    }
}

参考

[iOS] 弱参照を扱えるコレクション NSHashTable と NSMapTable | アドカレ2013 : SP #8 | Developers.IO