如何让用户通过朋友的用户名添加好友,并使用swift在tableview中显示用户的好友列表

时间:2015-05-28 16:10:11

标签: ios xcode uitableview swift

我目前正在使用Swift开发iOS应用,用户可以在一个视图中通过用户名添加好友,并在另一个桌面视图中显示用户的好友列表,我目前正在使用解析和我能够让我的应用程序让用户注册并登录。

我想知道通过用户名添加好友的代码,并用解析显示用户的好友列表, 我已经尝试过寻找这个解决方案,除了如何从Facebook获取与我的应用程序无关的朋友列表外,我什么都没有。

感谢任何帮助,如果您需要任何其他信息,请与我们联系! (抱歉我的英语不好)。

1 个答案:

答案 0 :(得分:0)

您需要使用FBSDK for iOS才能为Facebook好友列表发出图形请求。

我不太明白,如果您想添加已在您的应用中注册的“朋友”或拥有Facebook帐户,但无论如何您需要将您的用户存储在数据存储中,我相信Parse有PFObject,你可以像这样保存:

var appUser = PFObject(className:"AppUser")
appUser["userFullName"] = "John Doe"
appUser["userFacebookID"] = 1
appUser["userEmail"] = "j.doe@doe.com"
appUser.saveInBackgroundWithBlock {
  (success: Bool, error: NSError?) -> Void in
  if (success) {
    // The object has been saved.
  } else {
    // There was a problem, check error.description
  }
}

从那里您需要的是将用户与“友谊”对象相关联,例如:

var userFriendship = PFObject(className:"Friendship")
    appUser["invitedUserEmail"] = "jane.doe@doe.com"
    appUser["invitingUserEmail"] = "j.doe@doe.com"
    appUser["invitationStatus"] = "pending"
    appUser.saveInBackgroundWithBlock {
      (success: Bool, error: NSError?) -> Void in
      if (success) {
        // The object has been saved.
      } else {
        // There was a problem, check error.description
      }
    }

之后,您可以更新对象,以便将邀请状态更改为“已接受”或“已拒绝”,取消“等等。

要获取用户邀请和朋友列表,您需要使用您正在寻找的参数制作ParseQuery,例如:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"invitingUserEmail = 'j.doe@doe.com' AND invitationStatus = 'accepted'"];
PFQuery *query = [PFQuery queryWithClassName:@"Friendship" predicate:predicate];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
  if (!error) {
    // The find succeeded.
    NSLog(@"Successfully retrieved %d friends.", objects.count);
    // Do something with the found objects
    for (PFObject *object in objects) {
        NSLog(@"%@", object.objectId);
    }
  } else {
    // Log details of the failure
    NSLog(@"Error: %@ %@", error, [error userInfo]);
  }
}];

您可以在Parse Docs https://parse.com/docs/ios/guide

中找到更多内容