我正在尝试按照此处找到的步骤比较两个数组,并知道何时创建一个新对象,但我只是不明白它是如何工作的:
您最终会得到两个排序的数组——一个包含传递到 fetch 请求中的员工 ID,另一个包含与它们匹配的托管对象。要处理它们,请按照以下步骤遍历排序列表:
Get the next ID and Employee. If the ID doesn't match the Employee ID, create a new Employee for that ID.
Get the next Employee: if the IDs match, move to the next ID and Employee.
不管你传入多少个 ID,你只执行一次 fetch,其余的只是遍历结果集。
基本上发生的事情是我有一个来自外部源的对象 id 数组,而客户端系统只有这些 id 表示的对象的一个子集。我需要弄清楚我已经拥有哪些对象,如果没有,就一个一个地创建它们。
我不明白这是如何工作的。我无法将其转换为代码:
for (int i =0;i<ids.count;i++) {
currentId = [ids objectAtIndex:i];
currentObject = [objects objectAtIndex:i];
if(currentObject.id != currentId) {
//create new object
}
//"get the next employee"
//uh what?
nextEmployee = [objects objectAtIndex:i+1]; //?
if(nextEmployee.id == currentId) {
//"move on to the next id"
continue;
}
}
我不明白这将如何工作?我错过了什么?