如何使用StackMob作为后端获取sm_owner用户对象
我发现用户有一个sm_owner字段。 但是,如何让用户使用sm_owner。 我的代码是这样的:
[self.client getLoggedInUserOnSuccess:^(NSDictionary *result) { NSString *currentLogginedUser = [result valueForKey:@"sm_owner"]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedOjbectContext]; [request setEntity:entity]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"sm_owner like user/%@", currentLogginedUser]; [request setPredicate:predicate]; self.user = [[self.managedOjbectContext executeFetchRequest:request error:nil] objectAtIndex:0]; } onFailure:^(NSError *error) { }];
崩溃消息是:reason:'未实现的谓词的SQL生成(sm_owner LIKE user /“user / test”)'
我是StackMob的平台推广者。
getLoggedInUserOnSuccess方法的结果通常包含主键“username”。 所以下面的代码应该工作。
[self.client getLoggedInUserOnSuccess:^(NSDictionary *result) { NSString *currentLogginedUser = [result objectForKey:@"username"]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"User" inManagedObjectContext:self.managedOjbectContext]; [request setEntity:entity]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"username == %@", currentLogginedUser]; [request setPredicate:predicate]; self.user = [[self.managedOjbectContext executeFetchRequest:request error:nil] objectAtIndex:0]; } onFailure:^(NSError *error) { }];
或者,如果你想从NSDictionary结果中获取sm_owner。 我会做以下。
NSString *sm_owner = [result valueForKey:@"sm_owner"]; NSArray *myArray = [sm_owner componentsSeparatedByString:@"/"]; NSString *currentLogginedUser = [myArray objectAtIndex:1];
然后执行你的获取。