我想知道如何将 userInfo 对象或任何 NSDictionary 添加到 UIAlertView?
谢谢。
最佳答案
您可以尝试对 UIAlertView 进行子类化以添加该字段,或者改为在您的委托(delegate)类中存储一个引用。但将任何对象附加到任何其他对象的最通用方法是使用 objc_setAssociatedObject
.
为此,您必须 #import <objc/runtime.h>
,你需要一个任意的 void *
用作键(通常的技巧是在 .m 文件中声明 static char fooKey;
并使用其地址)。然后你可以像这样附加对象:
objc_setAssociatedObject(alertView, &fooKey, myDictionary, OBJC_ASSOCIATION_RETAIN);
在这种情况下,myDictionary 将在 alertView 的生命周期内保留,并在 alertView 被释放时释放。
稍后要检索关联对象,请使用逻辑命名的 objc_getAssociatedObject
.
NSDictionary *myDictionary = objc_getAssociatedObject(alertView, &fooKey);
它返回 nil
如果没有关联集。要打破关联,只需使用 objc_setAssociatedObject
为同一个对象和键关联一个新值; nil
可用于在不关联新对象的情况下中断关联。
列出了除 OBJC_ASSOCIATION_RETAIN 之外的关联类型的其他值 here .
关于iphone - 如何将 userInfo 添加到 UIAlertView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5279884/