我希望AccountUser
linkedAccount
类型为LinkedAccountFacebook
,其中AccountUser
有许多LinkedAccount
(核心数据中)。< / p>
哪个更好用?
objectsWithOptions:passingTest:
NSSet *facebookLinkedAccounts =
[activeAccountUser.linkedAccounts objectsWithOptions:NSEnumerationConcurrent passingTest:^BOOL(id obj, BOOL *stop) {
if ([(LinkedAccount *)obj hasType:LinkedAccountTypeFacebook]) {
*stop = YES;
return YES;
} else {
return NO;
}
}];
filteredSetUsingPredicate:
NSSet *facebookLinkedAccounts =
[activeAccountUser.linkedAccounts filteredSetUsingPredicate:
[NSPredicate predicateWithFormat:@"type == %i", LinkedAccountTypeFacebook]];
通过NSManagedObjectContext
。
或者,有更好的方法吗?
答案 0 :(得分:2)
调用activeAccountUser.linkedAccounts将从核心数据中获取所有内容(如果它们是错误的),假设您已建立关系。
`linkedAccounts'是错吗?那它已经在记忆中吗?如果是这样,我会使用(2.)。如果数据仍在您的后备存储ID中,则执行获取请求,并使用谓词过滤到您需要的链接帐户类型(3。)
或者如果您打算提取所有其他类型,也许最好先提取它们。
并排尝试并运行仪器时间分析器。