Swift 3 - FBSDKGraphRequest - 键入'任何'没有下标成员

时间:2017-03-19 11:40:54

标签: swift xcode facebook

我要求Facebook登录并获得4 " Type' Any'以下行中没有下标成员" 问题:

PFUser.current()?["name"] = result["name"]
PFUser.current()?["email"] = result["email"]
PFUser.current()?["gender"] = result["gender"]

let userId = result["id"] as! String

这是代码:

override func viewDidLoad() {
        let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"id, name, gender, email"])

        graphRequest.start { (connection, object, error) -> Void in
            if error != nil {
                print("Error while making Graph request to Facebook")
            } else {
                if let result = object {

                    PFUser.current()?["name"] = result["name"]
                    PFUser.current()?["email"] = result["email"]
                    PFUser.current()?["gender"] = result["gender"]

                    PFUser.current()?.saveInBackground()

                    let userId = result["id"] as! String
                    self.saveUserImageInBackground(userId)
                }
            }
        }
    }

该应用无法启动。

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

private static final int TYPE_HEADER = 0;
private static final int TYPE_ITEM = 1;
private List<Offer> mValues;
OfferListAdapter(List<String> items) {
        mValues = items;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (viewType == TYPE_ITEM) {
            View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemView, parent, false);
            return new ItemViewHolder(v);
        } else if (viewType == TYPE_HEADER) {
            View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.headerView, parent, false);
            return new HeaderViewHolder(v);
        }
        return null;
    }

    @Override
    public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
        if (holder instanceof ItemViewHolder) {
            ItemViewHolder userViewHolder = (ItemViewHolder) holder;
        } else if (holder instanceof HeaderViewHolder) {
             HeaderViewHolder headerViewHolder= (HeaderViewHolder) holder;
        }
    }

    @Override
    public int getItemViewType(int position) {
        if (isPositionHeader(position))
            return TYPE_HEADER;

        return TYPE_ITEM;
    }

    private boolean isPositionHeader(int position) {
        return position == 0;
    }

    private Offer getItem(int position) {
        return mValues.get(position - 1);
    }

    @Override
    public int getItemCount() {
        return mValues.size() + 1;
    }