Ios 从解析数据库中提取用户信息
我正在使用Parse作为我的应用程序的后端。一旦用户登录到他们的帐户,我就试图让下一个视图在顶部说“欢迎,(名字)”。然而,即使使用Parse的在线文档,我似乎也不知道如何实现这一点。他们的网站指示我在此寻求进一步的帮助。我试过使用他们的查询功能,但没有找到答案。换句话说,我试图从数据库中提取当前登录用户的名字,并在登录后显示它 当前代码:Ios 从解析数据库中提取用户信息,ios,objective-c,parse-platform,Ios,Objective C,Parse Platform,我正在使用Parse作为我的应用程序的后端。一旦用户登录到他们的帐户,我就试图让下一个视图在顶部说“欢迎,(名字)”。然而,即使使用Parse的在线文档,我似乎也不知道如何实现这一点。他们的网站指示我在此寻求进一步的帮助。我试过使用他们的查询功能,但没有找到答案。换句话说,我试图从数据库中提取当前登录用户的名字,并在登录后显示它 当前代码: PFQuery *query = [PFUser query]; [query whereKey:@"firstName" equalTo:currentU
PFQuery *query = [PFUser query];
[query whereKey:@"firstName" equalTo:currentUser]; // find user's first name
NSArray *firstName = [query findObjects];
以前的代码:
PFUser *currentUser = [PFUser currentUser];
if (currentUser) {
// do stuff with the user
Welcome.text = [NSString stringWithFormat:@"Welcome,", currentUser];
你的事情太复杂了 您不必每次加载视图时都执行查询,相反,您应该将其放入plist或NSUserDefaults中,以避免仅使用API请求来显示当前用户名 但是,您可以对当前用户的用户名执行以下操作:
if ([PFUser currentUser]) {
Welcome.text = [NSString stringWithFormat:@"Welcome, %@", [PFUser currentUser].username];
}
首先,您应该检查您是否确实使用此类函数注册和/或登录到Parse:
[PFUser signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
}];
[PFUser logInWithUsernameInBackground:@"My username" password:@"My password" block:^(PFUser *validUser, NSError *error) {
}];
检查此链接:
完成此操作后,每当您想要检索用户信息时
[PFUser currentUser]
是调用某些信息的正确方式:
例如,假设您想要检索objectId,您可以按如下方式获取它:
NSString *str = [PFUser currentUser].objectId;
NSString *str = @"My custom object";
[PFUser setObject:str forKey:@"MyCustomObject"];
[PFUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
}];
NSString *str = [PFUser objectForKey:@"MyCustomObject"];
或者说您想设置如下自定义值:
NSString *str = [PFUser currentUser].objectId;
NSString *str = @"My custom object";
[PFUser setObject:str forKey:@"MyCustomObject"];
[PFUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
}];
NSString *str = [PFUser objectForKey:@"MyCustomObject"];
然后按如下方式检索:
NSString *str = [PFUser currentUser].objectId;
NSString *str = @"My custom object";
[PFUser setObject:str forKey:@"MyCustomObject"];
[PFUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
}];
NSString *str = [PFUser objectForKey:@"MyCustomObject"];
您应该通过解析检查文档和示例,这些文档和示例解释得非常好!;)
(以下是一些Parse的教程/示例:)如何设置从登录到主视图的转换?它们都是两个不同的控制器吗 如果是这样,你应该调查一下NSNotificationCenter 在MainViewController中,实现
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(loadObjects)
name:@"loginFinished"
object:nil];
而loadObjects
将
- (void)loadObjects
{
Welcome.text = [NSString stringWithFormat:@"Welcome %@", [[PFUser currentUser] objectForKey:"userNameField"]];
}
*您需要解析PFUser对象以访问其字段。它只是一个字典,所以为它提供一个键“username”或其他什么,你就会收到一个值“myusername”*强>
然后在LoginViewController
中,在[PFUser logInWithUsernameInBackground:password:block
实施这个
[PFUser logInWithUsernameInBackground:@"My username" password:@"My password" block:^(PFUser *validUser, NSError *error) {
if (!error) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"loginFinished" object:nil];
}
}];
但这基本上就是你应该如何设置你的登录->主流程。学习NSNotification、Delegation,也许还有KVO…学习这些将使你了解如何在iOS/Mac环境中传递数据
这里有一个类比:
NSNotification
:老师(NSNotification海报)向所有学生(NSNotification观察员)宣布考试,或至少向正在上课的学生宣布考试,缺课的学生没有观察
代表
:学生完成测试并通知教授(代表)
KVO
:学生(KVO海报)完成一个问题并举手,老师甚至其他学生可以成为KVO(关键值观察者)并采取行动。您是否尝试过使用此选项:[NSString stringWithFormat:@“欢迎,%@”,currentUser];
?当使用格式字符串时,如在stringWithFormat中,您需要使用%@作为您提供的字符串的标识符,即currentUser
。我刚刚尝试过,但现在它显示类似的内容。