0
获取单个用户对象我想要检索的主要应用程序用户的用户对象,以访问用户的姓名,照片等IOS /核心数据:从实体
下面的代码返回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
是您的_managedObjectContext是否正确?另外,检查是否错误是零,如果不打印error.description –
上述方法从viewdidload调用,我认为这是正确的。 – zztop
你检查过那个错误是否为零? –