Parse.com IOS,无法获取指向 PFUser 的指针
Parse.com IOS, cannot fetch a pointer to PFUser
我正在学习 Parse.com 上的教程,但我似乎无法正常使用它。这是我的问题。
我有一个名为 Questions
的 class 和一个名为 _User
且类型为 PFUser 的 class(它在 class 名称旁边有一个图片图标).用户通过 FB 登录并注册为 _User
。我可以在 _User
class.
中看到自己
我提出了一个问题,我在 Question
class 中有一个名为 qOwner
的字段,它是问题的所有者。这是在通过 ios 应用程序保存新问题时设置的,如下所示:
QuestionCard[@"qOwner"] = [PFUser currentUser];
我可以在 _User
中看到我自己的 objectId
是 qOwner
列中的值,在当前问题所在的行。
问题是我无法检索应用程序中的值。如果我将以下内容放在正确的位置:
PFQuery *query = [PFQuery queryWithClassName:@"Questions"];
[query addAscendingOrder:@"createdAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// The find succeeded.
NSLog(@"@@@ : Successfully retrieved %lu questions ", (unsigned long)objects.count);
// Do something with the found objects
NSLog(@"%@",objects);
// fetched data are PFObjects
// we need to convert that into a YesOrNo object
// and then add it to _cards array
for (PFObject *object in objects) {
NSLog(@"currentUser : %@",[PFUser currentUser]);
PFUser *qOwnerUser = [object objectForKey:@"qOwner"];
NSLog(@"Question Made by : %@",qOwnerUser);
}
.....
正在打印以下内容:
1)
@@@ : Successfully retrieved 1 cards
2)
(
"<Questions: 0x17011f5c0, objectId: zZWGsfciEU, localId: (null)> {\n CardId = 999;\n qOwner = \"<PFUser: 0x17037e000, objectId: LtdxP5K0n6>\";\n type = 0;\n }"
)
3)
currentUser : <PFUser: 0x174375e40, objectId: LtdxP5K0n6, localId: (null)> {
facebookId = 10153480462518901;
thumbnail = "<PFFile: 0x174479a80>";
username = UYRRmfbXDHqr1Ws4VwJcAy2wx;
}
4)
Question Made by : <PFUser: 0x17037e000, objectId: LtdxP5K0n6, localId: (null)> {
}
1-2-3好像是正确的,我可以看到指针关系。但是为什么在4里面{}
我什么也看不到呢?我本希望看到与 3 中相同的用户详细信息。
我是不是漏掉了什么?
默认情况下,Parse 不会在查询中获取指针值。您必须使用 includeKey:
告诉查询包含指针数据。这样做:
PFQuery *query = [PFQuery queryWithClassName:@"Questions"];
[query addAscendingOrder:@"createdAt"];
[query includeKey:@"qOwner"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
...
}];
我正在学习 Parse.com 上的教程,但我似乎无法正常使用它。这是我的问题。
我有一个名为 Questions
的 class 和一个名为 _User
且类型为 PFUser 的 class(它在 class 名称旁边有一个图片图标).用户通过 FB 登录并注册为 _User
。我可以在 _User
class.
我提出了一个问题,我在 Question
class 中有一个名为 qOwner
的字段,它是问题的所有者。这是在通过 ios 应用程序保存新问题时设置的,如下所示:
QuestionCard[@"qOwner"] = [PFUser currentUser];
我可以在 _User
中看到我自己的 objectId
是 qOwner
列中的值,在当前问题所在的行。
问题是我无法检索应用程序中的值。如果我将以下内容放在正确的位置:
PFQuery *query = [PFQuery queryWithClassName:@"Questions"];
[query addAscendingOrder:@"createdAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// The find succeeded.
NSLog(@"@@@ : Successfully retrieved %lu questions ", (unsigned long)objects.count);
// Do something with the found objects
NSLog(@"%@",objects);
// fetched data are PFObjects
// we need to convert that into a YesOrNo object
// and then add it to _cards array
for (PFObject *object in objects) {
NSLog(@"currentUser : %@",[PFUser currentUser]);
PFUser *qOwnerUser = [object objectForKey:@"qOwner"];
NSLog(@"Question Made by : %@",qOwnerUser);
}
.....
正在打印以下内容:
1)
@@@ : Successfully retrieved 1 cards
2)
(
"<Questions: 0x17011f5c0, objectId: zZWGsfciEU, localId: (null)> {\n CardId = 999;\n qOwner = \"<PFUser: 0x17037e000, objectId: LtdxP5K0n6>\";\n type = 0;\n }"
)
3)
currentUser : <PFUser: 0x174375e40, objectId: LtdxP5K0n6, localId: (null)> {
facebookId = 10153480462518901;
thumbnail = "<PFFile: 0x174479a80>";
username = UYRRmfbXDHqr1Ws4VwJcAy2wx;
}
4)
Question Made by : <PFUser: 0x17037e000, objectId: LtdxP5K0n6, localId: (null)> {
}
1-2-3好像是正确的,我可以看到指针关系。但是为什么在4里面{}
我什么也看不到呢?我本希望看到与 3 中相同的用户详细信息。
我是不是漏掉了什么?
默认情况下,Parse 不会在查询中获取指针值。您必须使用 includeKey:
告诉查询包含指针数据。这样做:
PFQuery *query = [PFQuery queryWithClassName:@"Questions"];
[query addAscendingOrder:@"createdAt"];
[query includeKey:@"qOwner"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
...
}];