2015-11-07 68 views
0

我有这样的代码:工作使用快捷,logInWithPublishPermissions

let login: FBSDKLoginManager = FBSDKLoginManager() 
    login.logInWithPublishPermissions(["publish_actions"], handler: { (result: FBSDKLoginManagerLoginResult!, error: NSError!) -> Void in 
     if error != nil { 
      NSLog(error.localizedFailureReason!) 
     } else if result.isCancelled { 
      NSLog("Canceled") 
     } else if result.grantedPermissions.contains("publish_actions") { 
      self.loginFacebookButtin.hidden = true 
     } 
    }) 

此代码工作不错,但我有这样的警告消息:

'logInWithPublishPermissions(_:处理器:)' 已过时:使用logInWithPublishPermissions :fromViewController:处理器:代替

我试图解决这个警告,但我不能。有人知道如何解决它?

回答

1

按照FBSDK API

你使用的方法的方式已经过时了。它要你使用它的文件中指出的新的方式,如下所示:

- (void) 
logInWithPublishPermissions: (NSArray *)permissions 
        handler: (FBSDKLoginManagerRequestTokenHandler)handler 
__attribute__((deprecated("use logInWithPublishPermissions:  fromViewController:handler: instead"))); 

因此你可以使用它像这样:

let login: FBSDKLoginManager = FBSDKLoginManager() 
login.logInWithPublishPermissions(["publish_actions"], fromViewController: self, handler: { (response: FBSDKLoginManagerLoginResult!, error: NSError!) in 
    if (error != nil) { 
     NSLog(error.localizedFailureReason!) 
    } else if result.isCancelled { 
     NSLog("Canceled") 
    } else if result.grantedPermissions.contains("publish_actions") { 
     self.loginFacebookButtin.hidden = true 
    } 
}) 
0

您需要调用的函数是这样的:

let login: FBSDKLoginManager = FBSDKLoginManager() 
login.logInWithPublishPermissions(["publish_actions"], fromViewController: self, handler: { (result: FBSDKLoginManagerLoginResult!, error: NSError!) -> Void in 
    if error != nil { 
     NSLog(error.localizedFailureReason!) 
    } else if result.isCancelled { 
     NSLog("Canceled") 
    } else if result.grantedPermissions.contains("publish_actions") { 
     self.loginFacebookButtin.hidden = true 
    } 
}) 
+0

请解释一下,为什么函数应该这样调用。 –

+0

该方法已被弃用,以便根据文档必须调用该方法,如“logInWithPublishPermissions:fromViewController:处理程序:” –

+0

好吧。请将此添加到您的答案中,而不是发表评论。您会在答案下方找到一个**编辑**链接。并请阅读[旅游](http://stackoverflow.com/tour)。 –