我正在尝试为主要应用用户检索用户对象,以便能够访问用户的姓名,照片等。
以下代码返回null。这是检索对象的有效代码吗?如果没有,可能是用户信息首先没有正确存储在核心数据中....如果只有你可以轻松查看底层的sql-lite文件 - 但这是另一回事。但是,我想排除检索用户对象的代码的问题。
- (User *)getUserInfo:(NSNumber *)userid
inManagedObjectContext:(NSManagedObjectContext *)context
{
User *user = nil;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"User"];
request.predicate = [NSPredicate predicateWithFormat:@"userid == %@",userid];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"userid" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSError *error = nil;
NSArray *matches = [_managedObjectContext executeFetchRequest:request error:&error];
if (!matches || [matches count] > 1) {
// handle error
} else {
user = [matches lastObject];
}
return user;
}
//This is returning null currently. Is there an error visible somewhere?
编辑:
这就是它的名称:
//in viewdidload
_managedObjectContext = [myModel sharedInstance].managedObjectContext;
NSNumber *useridnum =[[NSUserDefaults standardUserDefaults] valueForKey:@"userid"];
User *user = [self getDemoInfo:useridnum
inManagedObjectContext:_managedObjectContext];
NSLog(@"user is%@",user);//logs as null
答案 0 :(得分:1)
如果[匹配计数]>您的用户将保持为零的一种方式1是正确的,因此请检查您是否制作了具有相同ID的重复用户对象