Iphone 如何使用stackmob将用户对象添加到事件中
我使用stackmob作为后端服务。我使用以下代码创建一个新用户:Iphone 如何使用stackmob将用户对象添加到事件中,iphone,ios,core-data,stackmob,Iphone,Ios,Core Data,Stackmob,我使用stackmob作为后端服务。我使用以下代码创建一个新用户: User *newUser = [[User alloc] initIntoManagedObjectContext:self.managedObjectContext]; [newUser setValue:info.username forKey:[newUser primaryKeyField]]; [newUser setValue:info.email forKey:@"email"]; [newUser setPas
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");
}];
用户使用以下代码登录:
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*)]
。但是如何获取当前登录用户,以便将当前用户添加到此事件中。在loginWithUsername的onSuccess块中,您需要使用您登录的用户名查询用户实体。像这样的
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);
}];
我是StackMob的平台传道者 我刚刚创建了一个项目,从中获取了当前登录的用户,并将该对象添加到关系中。您可以自己下载并查看代码
在JustSayinViewController.m文件中查找适当的代码。所以,我只需要[self.event addUserObject:entity]?addUserObject部分在哪里?您需要在ExecuteFetchRequestOnSuccess处理程序中执行此操作。我更新了答案。很抱歉,我将答案检查标记交给了西德尼·梅斯特。他的代码真的帮了我很多,回答了我的很多问题。但我也很感谢你的帮助。另一个问题:我有两个模型,事件用户。我使用您的解决方案添加UserObject,但情况是[self.event addUsersObject:currentLoggedInUser];它不起作用。它阻塞了用户界面,我不能点击任何东西。在我更改本地关系后,我是否必须在dashboard.stackmob.com上更改或添加关系?我将检查仪表板并确认已为您的架构正确设置了关系。