我基于2个对象类(classA
和classB
)创建了两个iPad应用程序。
我在classA
的文件中序列化NSKeyedArchiver
(然后附加到电子邮件中)。
我想取消归档使用classA
的其他应用中的classB
对象,而不包括其他应用的所有标头。
问题: 当我使用NSKeyedUnarchiver从iPad文件系统(来自邮件附件)加载对象时,该函数返回错误("类无法识别")。
我尝试了什么: 这些子弹都不适合我...... a)检查类类型(作为字符串)并转换objectA。 b)在另一个应用程序中包含objectA的.h定义。
问题: 有没有办法将对象解压缩为通用ID对象? 然后设置参数调用,例如:
[genericObjectA setName:@"new name"];
[genericObjectA execute];
鉴于我知道函数的名称和要设置的参数的名称?
答案 0 :(得分:0)
使用KVO,您可以设置值:
[genericObjectA setValue:@"new name" forKey:@"name"];
然后调用方法,使用它的选择器:
SEL newSelector = NSSelectorFromString(@"execute");
if ([genericObjectA respondsToSelector:newSelector])
[genericObjectA performSelector:@selector(newSelector)];