如果我有一个指向自定义类的本地指针,我如何将其指针存储在类级别的 NSDictionary 变量中,并在其初始创建范围终止后使用它。
如何告诉编译器保留由 new 创建的内存,直到我创建它的类超出范围?
这是 sudo 代码,用于表示相关变量的范围。
Class {
NSMutableDictionary* allElements;
SomeFunction {
InnerClosure1 {
DefaultElement* element = [DefaultElement new];
[allElements setObject:element forKey:@:"Foo"];
}
InnerClosure2 {
DefaultElement* element = [allElements objectForKey:@"Foo"];
}
}
问题是在尝试将指针放入字典后出现此错误:
[__NSDictionaryI setObject:forKey:]:无法识别的选择器发送到实例 0x94421d0 2013-01-31 23:35:32.575 Muskoka-Domicile[1371:19d03] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[__NSDictionaryI setObject :forKey:]: 无法识别的选择器发送到实例 0x94421d0'
我怀疑它与转移自定义类的所有权有关?
编辑 结果将 NSMutableDictionary* 初始化为 NSDictionary...