gpt4 book ai didi

IOS/核心数据 : Retrieve single user object from entity

转载 作者:行者123 更新时间:2023-11-29 01:02:11 25 4
gpt4 key购买 nike

我正在尝试检索主要应用程序用户的用户对象,以便访问用户的姓名、照片等。

下面的代码返回 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

最佳答案

如果 [matches count] > 1 为 true ,您的用户将保持为 nil 的一种方式,因此请检查您没有创建具有相同 ID 的重复用户对象

关于IOS/核心数据 : Retrieve single user object from entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36877686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com