所以,我试图在我的应用程序上获取所有其他Facebook好友的列表。
在完成fbsdkgraphrequest之后,我得到了正确的数据(见下文),然后将其转换为nsdictionary。数据如下:

{
    friends =     {
        data =         (
                        {
                id = 10154257515635281;
                name = "Hector Judd";
            },
                        {
                id = 151132798649181;
                name = "Arch Tester Dev";
            }
        );
        paging =         {
            cursors =             {
                after =  QVFIUndVRFZAINXhCSlAzdnNGeUUwTHdhamNpc3NFbjR2NjF4dk40N3ZAZAR2lNLXM0Q3BxLW90REVsaFk3aU13Um1Ca0NOd0ZAXN2gxaDF2emhYem9BMjhkMVl3;
                before = QVFIUlo2a1Q4UGhpWmY2SFNWbUtpMVcxZAnEtR01KSlUyeVEtMU9GbjNkRHp2bTFKY0VoVm5xX3dNLXEwMG5OY0Q0My0ZD;
            };
         };
        summary =         {
            "total_count" = 831;
        };
    };
    id = 10208811056967519;
}

然后,我尝试用多个if-let语句将其解包,但最终得到错误:segmentation fault 11。见下面的代码。
func getFriends() {

    let parameters = ["fields": "friends"]

    FBSDKGraphRequest(graphPath: "me", parameters: parameters).startWithCompletionHandler({ (connection, result, error) -> Void in

        if error != nil {

            print(error)

        } else {

            if let result = result as? NSDictionary {

                if let data = result["friends"] as? NSDictionary {

                    if let friendData = data["data"] as? NSArray {

                        for friend in friendData {

                            friendIds.append(friend["id"] as String)

                            print(friendIds)

                        }


                    }
                }

            }
        }

    })
}

我对编程还比较陌生,正在努力寻找一种好的方法来实现这一点。任何建议都将不胜感激!!谢谢。

最佳答案

尝试在循环中将frienddata变量声明为nsdictionary

   for friend in friends {
       if let friendData = friend as? NSDictionary {
              friendIds.append(friendData["id"] as! String)
       }
   }

关于json - Swift Facebook取得好友图请求错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38547130/

10-10 22:25