NSMapTable在键解除分配之前释放条目

时间:2015-05-19 10:11:09

标签: ios objective-c

我使用NSMapTable感到困惑。

NSMapTableNSPointerFunctionsWeakMemory

    _controllersTable = [[NSMapTable alloc] initWithKeyOptions:NSPointerFunctionsWeakMemory|NSPointerFunctionsObjectPointerPersonality
                                                  valueOptions:NSPointerFunctionsWeakMemory|NSPointerFunctionsObjectPointerPersonality
                                                      capacity:0];

假设我创建UIViewController并将其添加到MapTable:

MyVC *myVC = [[MyVC alloc] init];
[self.controllersTable setObject:@1 forKey:controller]

MyVC.m

- (void)dealloc {

    // [[[controllersTable keyEnumerator] allObjects] count]] == 0

}

因此,当MyVC调用dealloc时,没有该VC的条目。在这种情况下,有没有办法从NSMapTable获得价值?

PS

我无法使用NSPointerFunctionsStrongMemory来存储密钥,因为它可以引入保留周期。

0 个答案:

没有答案