我有工作代码,它接收更新的Web服务,决定更新或创建新的,但更新不起作用。 (我在这里已经阅读了其他几十个问题,包括我正在关注的一个here。另一个例子是接受的答案here)
saveContext:下面执行时没有错误且没有查询(使用Debug level 2)
返回的数组,其中19为所需记录。来自po results
:
<_PFArray 0xa349280>(
{
address = "an address";
companyName = "the Name";
email = "email@company.com";
fname = "first name";
inserted = "2014-05-01 04:00:00 +0000";
level = 3;
lname = "last name";
num = 19;
phone = "phone #";
tax2 = "tax number";
}
总结:
results
数组是_PFArray existingObject
对象上。它没有正确引用managedObjectContext。saveContext保存数据需要什么?
**编辑:**我已将其缩小到existObject
不正确的类型,但我仍在寻找它不是managedObjectContext
的原因。
这是获取方法。也许这个问题就在这里:
- (NSArray *)performFetchInEntity:(NSString *)entity withPredicate:(NSString *)predicate {
NSManagedObjectContext *context = self.managedObjectContext;
// Create the fetch request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity: [NSEntityDescription entityForName:entity
inManagedObjectContext:context]];
// This next line should NOT be used !!!
// [fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setReturnsObjectsAsFaults:NO];
if (predicate)
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:predicate]];
// Execute the fetch.
NSError *error;
NSArray *result = [context executeFetchRequest:fetchRequest
error:&error];
NSLog(@"returned: %@", [result objectAtIndex:0]);
if (!error)
return result;
else
return nil;
}
答案 0 :(得分:2)
找到了罪魁祸首:
[fetchRequest setResultType:NSDictionaryResultType];
删除该行会导致在结果数组中正确返回类型。
答案 1 :(得分:0)
我遇到了同样的问题。
我收到错误: NSKnownKeysDictionary1 未知对象。
我试图从核心数据中获取对象数组,我在方法中编写了一行代码:
[request setSortDescriptors:[NSArray arrayWithObject:sortByName]];
sortByName =nil;
[request setResultType:NSDictionaryResultType];
我试图使用快速启动从Array获取对象。 这是错误的。 NSKnownKeysDictionary1未知对象。 我删除了
[request setResultType:NSDictionaryResultType];
代码有效。