我正在使用stackmob进行后端服务。我使用这些代码创建了一个新用户:
User *newUser = [[User alloc] initIntoManagedObjectContext:self.managedObjectContext];
[newUser setValue:info.username forKey:[newUser primaryKeyField]];
[newUser setValue:info.email forKey:@"email"];
[newUser setPassword:info.password];
NSError *error = nil;
if ([self.managedObjectContext save:&error]) {
}
用户使用以下代码登录:
[self.client loginWithUsername:info.username password:info.password onSuccess:^(NSDictionary *result) {
[userDefaults setBool:YES forKey:@"signedin"];
NSLog(@"user signed in");
} onFailure:^(NSError *error) {
NSLog(@"login error");
}];
目前,该活动有很多用户。
所以,我想要[self.event addUsersObject:(User *)]
。但是我如何获得当前的日志记录用户,因此我可以将当前用户添加到此事件中。
答案 0 :(得分:0)
在loginWithUsername的onSuccess块中,您需要使用您登录的用户名查询User实体。像这样......
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"username=%@", info.username];
[fetchRequest setPredicate:predicate];
[self.managedObjectContext executeFetchRequest:fetchRequest onSuccess:^(NSArray *results){
///there should be only 1 result, but the code should really check
NSLog(@"%@",results[0]);
User* loggedInUser = results[0];
[self.event addUserObject:loggedInUser];
} onFailure:^(NSError *error) {
NSLog(@"Error fetching: %@", error);
}];
答案 1 :(得分:0)
我是StackMob的平台传播者。
我刚刚创建了一个项目,我获取当前登录的用户并将该对象添加到关系中。您可以自己下载并查看代码。
https://github.com/SidneyAllen/hollagram-ios
在JustSayinViewController.m文件中查找相应的代码。