iOS - 更新新应用版本中的数据结构

时间:2011-04-20 01:00:30

标签: ios iphone data-structures

我没有使用核心数据。为了简单起见,假设我有以前类型为NSString的数据,现在它们应该是自定义类Person的对象,其唯一的ivar是NSString类型的“名称”ivar。在应用程序的更新版本中,我希望我的Person对象将其“名称”设置为NSString在保存的数据中的任何内容。但是假设我的人出现在应用程序中的许多不同的地方,所以告诉它如何单独处理每一个将是一个痛苦。

处理此问题的最佳方法是什么?特别是,我是否可以采取一些技巧来在非归档过程中捕获它?或者我是否必须浏览每个未归档的对象并将相应的NSStrings转换为Person对象?

1 个答案:

答案 0 :(得分:0)

您可以创建一个实用程序类,用于检查从unarchiver返回的值,并通过此方法运行它。如果值是NSString,那么你可以构造一个新的Person对象,如果没有,那么只返回该对象。

+ (Person *)personFromStringOrPersonObject:(id)object {
    if ([object isKindOfClass:[NSString class]]) {
        // Construct your Person object
        Person person = [Person new];
        person.name = object;
        return person;
    } else {
        return object;
    }
}