我正在尝试使用表格视图中的显示名称发布用户位置。但我在数据浏览器中获取的是正确的帖子,但显示名称为空白 我正在尝试查询位置类以及具有用户显示名称的用户类
// Configure the new event with information from the location.
CLLocationCoordinate2D coordinate = [location coordinate];
PFGeoPoint *geoPoint = [PFGeoPoint geoPointWithLatitude:coordinate.latitude longitude:coordinate.longitude];
PFObject *object = [PFObject objectWithClassName:@"Location"];
[object setObject:geoPoint forKey:@"location"];
PFObject *UserObject = [PFObject objectWithClassName:@"_User"];
[[UserObject objectForKey:@"postedUser"] objectForKey:@"displayName"];
// Create relationship
[object setObject:[PFUser currentUser] forKey:@"postedUser"];
[UserObject setObject:[PFUser currentUser] forKey:@"displayName"];
PFACL *locatinACL = [PFACL ACLWithUser:[PFUser currentUser]];
[locatinACL setPublicReadAccess:YES];
[object saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
}
}];
任何人都知道我做错了什么。显示名称在displayName下的用户类中,我需要在displayName 下的新帖子中
用户保存在表格中保存的详细信息,该表格必须在注册后填写额外的详细信息
NSString *saveName = UserNameText.text;
NSString *saveEmail = EmailAddressText.text;
NSString *saveMobile = MobileText.text;
NSString *saveAdd1 = Address1Text.text;
NSString *saveAdd2 = Address2Text.text;
NSString *savePostCode = PostCodeText.text;
NSString *saveCustTax = TaxiOrCust.text;
currentUserSave[@"displayName"] = saveName;
currentUserSave[@"email"] = saveEmail;
currentUserSave[@"mobile"] = saveMobile;
currentUserSave[@"address1"] = saveAdd1;
currentUserSave[@"address2"] = saveAdd2;
currentUserSave[@"postCode"] = savePostCode;
currentUserSave[@"customer"] = saveCustTax;
答案 0 :(得分:0)
原谅长期答案......我认为我对你的数据结构以及你想要实现的目标仍然有点不清楚,所以如果我澄清你现有的代码实际上在做什么,它似乎最有意义。希望这可以帮助您做出任何必要的调整。
PFObject *object = [PFObject objectWithClassName:@"Location"];
[object setObject:geoPoint forKey:@"location"];
在这里,您要创建新 Location
对象,并将您创建的地理位置设为location
。如果您想要更新现有的Location
对象,则必须从Parse中获取该对象(除非您已经拥有变量/属性)。
PFObject *UserObject = [PFObject objectWithClassName:@"_User"];
在这里,您要创建一个新用户对象。我怀疑你想要使用当前用户,而不是创建一个新用户。用户还有一个特定的Parse对象:PFUser
- 您稍后将使用它。
[[UserObject objectForKey:@"postedUser"] objectForKey:@"displayName"];
此行没有任何作用。您正在获取UserObject
的{{1}}属性,然后获取该用户的postedUser
属性。我认为这不是你想要的。
displayName
然后通过设置两个属性指向当前用户来更新您创建的两个新对象(您的位置和用户对象)。
[object setObject:[PFUser currentUser] forKey:@"postedUser"];
[UserObject setObject:[PFUser currentUser] forKey:@"displayName"];
这两行创建了一个新ACL,它为当前用户提供写访问权限,并为其他所有人提供读访问权限。但是,您不会将此应用于新的位置对象。
PFACL *locatinACL = [PFACL ACLWithUser:[PFUser currentUser]];
[locatinACL setPublicReadAccess:YES];
最后,这将保存您的新[object saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
}
}];
对象。但是,您创建的新Location
对象将不会保存,因为没有其他任何内容可以参考,并且您不会在其上调用保存。
我认为您正在编写的代码可能会被缩减为以下内容:
User
这更接近你想要的吗?