【发布时间】:2015-12-10 04:38:27
【问题描述】:
我正在尝试从解析服务器检索数据并存储在一个数组中。我不知道我在这里做错了什么。任何人都可以帮助我解决我的情况。另外,我是否可以使用查询来定义条件。我想注册用户。然后当我登录时,从解析加载用户的数据。
-(void)retrieveDataFromParse
{
//retrive userdata and show in main menu
NSString * username = _txtLoginUserName.text;
NSString * password = _txtLoginPassword.text;
PFQuery * query =[PFQuery queryWithClassName:@"User"];
[query whereKey:@"EmailID" equalTo:username];
[query whereKey:@"Password" equalTo:password];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error)
{
for (PFObject *object in objects)
{
// retreive data
NSString * firstName = [object objectForKey:@"UserFirstName"];
NSString * lastname = [object objectForKey:@"UserLastName"];
NSString * emailID = [object objectForKey:@"EmailID"];
NSString * address = [object objectForKey:@"Address"];
NSString * aptNo = [object objectForKey:@"AptNo"];
NSString * city = [object objectForKey:@"City"];
NSString * state = [object objectForKey:@"State"];
NSString * zipcode = [object objectForKey:@"Zipcode"];
NSString * phone = [object objectForKey:@"Phone"];
//put it in array
UserData * userData = [[UserData alloc]init];
userData.fname = firstName;
userData.lname = lastname;
userData.emailID = emailID;
userData.address = address;
userData.aptNo = aptNo;
userData.city = city;
userData.state = state;
userData.zipcode =zipcode;
userData.phone = phone;
[self.array_userData addObject:userData];
}
NSLog(@"Successfully retrieved: %@", objects);
}
else
{
NSString *errorString = [[error userInfo] objectForKey:@"error"];
NSLog(@"Error: %@", errorString);
}
}];
【问题讨论】:
-
错误是什么?打印
objects以准确查看您得到的结果,至少将它的第一部分放在问题中。UserData是什么?array_userData是一个属性吗?它是创建的,而不是声明的? -
我没有收到任何错误,它只是在“NSLog”中没有显示任何内容。 UserData 是 NSObject,我即将将这些数据发送到另一个 ViewController。 @zaph
-
如果您确实需要查看任何内容,很可能该块未执行。您是否检查过在块内设置断点?
-
UserData不是NSObject,它可能是NSObject的子类,但这并不能描述UserData是什么。 -
这就是调试器断点、单步、变量显示的用途:通过检查执行和变量来追踪错误代码。调试是开发代码的很大一部分,很少有开发人员可以编写没有错误需要调试的代码,当然不是我。如果
NSLog()s都没有执行,那么retrieveDataFromParse可能没有被调用。
标签: objective-c parse-platform