我有一个带有 ABRecordRef 的 NSMutableArray
我想将它保存到磁盘,我的同事告诉我序列化它。我不知道他在说什么?
我在网上浏览过很多“解决方案”,但我不明白它是如何工作的或为什么需要它
我有一个带有 ABRecordRef 的 NSMutableArray
我想将它保存到磁盘,我的同事告诉我序列化它。我不知道他在说什么?
我在网上浏览过很多“解决方案”,但我不明白它是如何工作的或为什么需要它
ABRecord 是一个不透明的核心基础类,没有相应的免费桥接目标 c 类。如果它是一个 Objective-C 类,你可以像@Toro 建议的那样使用 NSCoder。
假设您的可变数组是 ABPerson 引用的列表,您可以执行以下操作:
NSMutableArray newArr = [NSMutableArray array];
for(id obj in mutableArray) {
ABRecordRef ref = (ABRecordRef)obj;
ABRecordID recordID = ABRecordGetRecordID(ref);
NSValue* v = [NSValue value:recordID withObjCType:@encode(ABRecordID)];
[newArr addObject:v];
}
// newArr is a list of NSValues holding ABRecordIDs, which can be serialized.
反序列化时,从每个 NSValue 中获取 ABRecordID,然后在其上调用 ABAddressBookGetPersonWithRecordID() 以获取 ABRecordRef。请记住,用户可能会删除记录,因此,您可能会从该函数返回 NULL 值。