ios - 使用 Facebook SDK 4.1 快速获取 Facebook 相册数组

标签 ios facebook swift facebook-graph-api facebook-sdk-4.0

我尝试使用以下 Swift 代码通过新的 Facebook SDK 4.1 获取用户 Facebook 相册数组:

func getAlbumList()
{
    var FBAlbums = [String]()
    let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me?fields=albums", parameters: nil)
    graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in

        if ((error) != nil)
        {
            // Process error
            println("Error: \(error)")
        }
        else
        {
            println("fetched data: \(result)")

            let graphData = result.valueForKey("data") as Array;

            for obj:FBGraphObject in graphData{
                let desc = obj.description;
                println(desc);
                let name = obj.valueForKey("name") as String;
                println(name);
            }

        }
    })
}

FB SDK 查询工作正常,因为结果值包含来自 facebook 的所有数据(打印正常),但是任何实际将其转换为数组的尝试都会失败。

使用 XCode 6.3 会出现以下错误:

let graphData = result.valueForKey("data") as Array; ='AnyObject?' is not convertible to 'Array<T>'

for obj:FBGraphObject in graphData{ =Use of undeclared type 'FBGraphObject'

我似乎找不到任何有关 FBGraphObject 被替换的信息,或者为什么我无法将结果转换为数组的信息。

用作背景的文章(但似乎已经过时):

Creating an Array of objects from the Facebook SDK in Swift

http://selise.ch/build-a-facebook-album-browser-using-swift/

最佳答案

只需更改这行代码:

let graphData = result.valueForKey("data") as Array;

致:

self.dict = result["data"] as! NSArray

这适用于我从 Facebook 检索用户照片:

FBSDKGraphRequest(graphPath: "me/photos", parameters: ["fields": "id, name, source"]).startWithCompletionHandler({ (connection, result, error) -> Void in
    if (error == nil){
        self.dict = result["data"] as! NSArray

        for item in self.dict { // loop through data items

            if let urlString = item["source"]! {
                let url = NSURL(string: urlString as! String)
                let imageData = NSData(contentsOfURL: url!)
                let image = UIImage(data: imageData!)
                self.socialPhotoCollection.append(image!)

            }
        }
    }
})

关于ios - 使用 Facebook SDK 4.1 快速获取 Facebook 相册数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30173236/

相关文章:

ios - 检查多个 UISwitch 的状态

facebook - iOS 6 facebook 服务器无法完成此访问请求无效应用程序

ios - SwiftUI - 如何模糊 View 的默认背景颜色?

ios - 如何防止用户从滑出设置菜单中连续两次调用同一 View Controller ?

ios - FBSession : No AppID provided; either pass an AppID to init, 或添加字符串值键

ios - 检测应用程序何时关闭、终止但在手机关闭时忽略

ios - NSString 到 NSDate 的转换失败

ios - 如何使用 API 调用 Ionic 上的数据

iphone - 如何解决线程错误 EXC_BAD_ACCESS?

Chrome 中的 Facebook iframe 应用滚动条