2015-07-13 113 views
0

我试图把OBJ-C代码,SWIFT(Facebook的IOS SDK),但自动完成(智能感知)不处理工作,我得到一个错误(标记代码):设置NSObject的没有一个名为成员“containsObject”Facebook的IOS SDK(OBJ-C到SWIFT)问题

@IBAction func loginWithFacebook(sender: AnyObject) { 
     /* 
     FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
     [login logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
     if (error) { 
     // Process error 
     } else if (result.isCancelled) { 
     // Handle cancellations 
     } else { 
     // If you ask for multiple permissions at once, you 
     // should check if specific permissions missing 
     if ([result.grantedPermissions containsObject:@"email"]) { 
     // Do work 
     } 
     } 
     }]; 
     */ 


     let fbLoginManager = FBSDKLoginManager() 
     fbLoginManager.logInWithReadPermissions(["email"], handler: { 
      result, error in 
      if ((error) != nil){ 

      } 
      else if (result.isCancelled){ 

      } else { 
       if(result.grantedPermissions.containsObject("email")){ //<-- error here 

       } 
      } 

     }) 



    } 

回答

1

由于雨燕1.2自动转换所有NSSet对象(来自外部的库/软件开发工具包/框架等来了...),以Set结构,你需要的是那些拨打contains而不是containsObject这样的事情(doc)。

+0

谢谢!你能否告诉我什么可能是自动完成(智能感知)不能在处理程序(块?)中工作的原因? – driver733

+1

@ user2441104就你而言,这可能是因为你没有明确指定块参数的类型。尝试编写:'...,处理程序:{(结果:FBSDKLoginManagerLoginResult!,错误:NSError!) - >在...中无效。 也可能只是滞后:) – Nevs12

+0

它的工作!非常感激! – driver733