0

我基于 2 个对象类(classAclassB)为 iPad 创建了两个应用程序。

classA在一个文件中序列化NSKeyedArchiver(然后附加到电子邮件中)。我想classA在使用 的其他应用程序中取消归档该对象classB,而不包括其他应用程序的所有标头。

问题:当我使用 NSKeyedUnarchiver 从 iPad 文件系统(从邮件附件)加载对象时,该函数返回错误(“类无法识别”)。

我尝试过 的:这些项目符号都不适合我.... a) 检查类类型(作为字符串)并转换 objectA。b) 在其他应用程序中包含 objectA 的 .h 定义。

问题: 有没有办法将对象取消归档到通用 ID 对象中?然后设置参数调用例如:

[genericObjectA setName:@"new name"];
[genericObjectA execute];

鉴于我知道函数的名称和要设置的参数的名称?

4

1 回答 1

0

使用 KVO,您可以设置值:

[genericObjectA setValue:@"new name" forKey:@"name"];

然后调用一个方法,使用它的选择器:

SEL newSelector = NSSelectorFromString(@"execute");
if ([genericObjectA respondsToSelector:newSelector])
    [genericObjectA performSelector:@selector(newSelector)];
于 2014-08-19T10:54:02.427 回答