在NSValue中获取对NSObject的引用

时间:2016-05-12 06:49:32

标签: objective-c cocoa cocoa-touch nsvalue

我有一个NSMutableDictionary,其中包含UIImageView个对象和UIView个键。

当我将UIImageView设置为NSMutableDictionary时,我从NSValue获取UIView,如下所示:

[viewImageMap setObject:anImage forKey:[NSValue valueWithNonretainedObject:aView]];

我想知道无论如何我都可以使用UIView对象获取NSValue引用。像这样:

UIView *aView = (UIView *)[NSObject objectWithValue:aValue];

2 个答案:

答案 0 :(得分:2)

以下是如何操作:

NSValue * myViewKey = [NSValue valueWithNonretainedObject:myView];
UIView * myViewFromValue = (UIView*) myViewKey.nonretainedObjectValue

答案 1 :(得分:2)

对于每个valueWith<Type>:方法,NSValue都有一个补充方法,以适当的类型返回存储的值。

您需要的是nonRetainedObjectValue

UIView * theView = [theValue nonRetainedObjectValue];