gpt4 book ai didi

ios - 为什么我的自定义用户对象(PFUser 的子类)中缺少字段?

转载 作者:可可西里 更新时间:2023-11-01 05:51:27 25 4
gpt4 key购买 nike

我正在为我的应用程序使用 Parse。我有一个名为 Request 的自定义类,我已经在 Parse 和我的本地项目中设置了它。在 Request 对象上,我有一个 User 对象。 User 对象是 PFUser 的子类。当用户发出请求时,它会被发送到服务器并发送给相应的用户以供他们接受或拒绝。提交请求工作正常;一切都正确存储在 Parse 中。问题是这样的:

提交请求后,我退出当前用户并登录到另一个用户的帐户,该帐户应该接收刚刚提交的请求。当我登录时,我有一个方法:

+ (void)getIncomingRequestsWithCompletion: (void(^)(NSMutableArray *incomingPendingRequestsArray, NSMutableArray *incomingAcceptedRequestsArray)) complete {
PFQuery *query = [PFQuery queryWithClassName:@"Request"];
[query whereKey:@"club" equalTo:[User currentUser] [@"club"]];
[query findObjectsInBackgroundWithBlock:^(NSArray *incomingRequestsArray, NSError *error) {
NSMutableArray *incomingPendingRequestsArray = [NSMutableArray new];
NSMutableArray *incomingAcceptedRequestsArray = [NSMutableArray new];
for (int i = 0; i < incomingRequestsArray.count; i++) {
if ([[incomingRequestsArray objectAtIndex:i]acceptedHostUser]) {
[incomingAcceptedRequestsArray addObject:[incomingRequestsArray objectAtIndex:i]];
}
else if (![[[incomingRequestsArray objectAtIndex:i]decliningUsers]containsObject:[User currentUser]]) {
[incomingPendingRequestsArray addObject:[incomingRequestsArray objectAtIndex:i]];
}
}
complete (incomingPendingRequestsArray, incomingAcceptedRequestsArray);
NSLog(@"%@",error.description);
}];
}

此方法运行后,我将获得当前用户的所有传入请求。此方法可以很好地返回请求。问题出在我终止应用程序时。如果我终止应用程序,上述方法将在用户重新运行应用程序时运行。该方法将返回相同数量的请求,

however all of the properties on the User object will be missing except for the objectId and a few other stock properties on the PFUser object.

这是在终止应用程序之前打印的对象:

<Request: 0x7fbe20bf5090, objectId: gEnwjj6ZIN, localId: (null)> {
club = "<Club: 0x7fbe20b74180, objectId: cApBkG9ZFY>";
message = "";
requestingUser = "<PFUser: 0x7fbe2043c640, objectId: LIzd2KvDwa>";
}


<PFUser: 0x7fbe2043c640, objectId: LIzd2KvDwa, localId: (null)> {
club = "<Club: 0x7fbe2088f5f0, objectId: KUa4N7fTgc>";
email = "spedroza@usc.edu";
firstName = Sergio;
handicap = 10;
headline = "Web Developer at University of Southern California";
lastName = Pedroza;
linkedInID = oOoiyTge7O;
location = "Greater Los Angeles Area";
phoneNumber = 5629224083;
profileImageFile = "<PFFile: 0x7fbe208cb900>";
username = "spedroza@usc.edu";
}

这是之后:

<Request: 0x7fe3f3d4cd50, objectId: gEnwjj6ZIN, localId: (null)> {
club = "<Club: 0x7fe3f3d287e0, objectId: cApBkG9ZFY>";
message = "";
requestingUser = "<PFUser: 0x7fe3f3d38b50, objectId: LIzd2KvDwa>";
}


<PFUser: 0x7fe3f3d38b50, objectId: LIzd2KvDwa, localId: (null)> {
}

现在,我在 Request 对象上有了另一个自定义对象。此对象是 Club 对象,无论应用是否已被终止,其自定义属性都在该对象上。几天来我一直在尝试调试它,除了运气之外什么都没有。非常感谢任何和所有想法!

最佳答案

如果我理解正确,您缺少详细信息的用户对象是请求用户。在调用 findObjectsInBackgroundWithBlock 之前尝试将此添加到您的查询中:

[query includeKey: @"requestingUser"]; (Objective-C)
query.includeKey("requestingUser"); (Swift)

如果您不在查询中包含其他类的对象,Parse 将只获取它们的 stub 。

关于ios - 为什么我的自定义用户对象(PFUser 的子类)中缺少字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33578075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com