我正在使用Facebook iOS SDK创建一个自定义故事,该应用程序使用Swift编写。 我的代码基于他们的文档示例https://developers.facebook.com/docs/ios/open-graph#createobject。
一切顺利进行,直到我必须创建FBGraphObject。
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
在 Swift 中,我已经重写了这一块:
var object = FBGraphObject.openGraphActionForPost()
// specify that this Open Graph object will be posted to Facebook
object.setObject(true, forKey: "provisionedForPost")
// for og:title
object.setObject(description["title"]!, forKey: "title")
// for og:type, this corresponds to the Namespace you've set for your app and the object type name
object.setObject("bppridereport:ride", forKey: "type")
// for og:description
object.setObject(description["description"]!, forKey: "description")
FBRequestConnection.startForPostOpenGraphObject(object, completionHandler: { (connection:FBRequestConnection!, result:AnyObject!, error:NSError!) -> Void in
if error == nil {
let objectId = result["id"]
} else {
NSLog("Error posting the Open Graph object to the Object API:", error);
}
})
这给我报错:NSMutableDictionary 与 FBOpenGraphObject 并不相同,读文档时可以理解,FBOpenGraphObject 只是一个装饰过的 NSMutableDictionary,所以将对象强制转换为 FBOpenGraphObject 就可以解决错误。
var object = FBGraphObject.openGraphActionForPost() as FBOpenGraphObject
问题是,当我现在编译并运行应用程序时,它会在这一行崩溃...我很困惑。几乎没有关于Swift实现Facebook SDK的资料。有任何想法为什么会发生这种情况吗?