gpt4 book ai didi

ios - Swift 错误 - 调用 SimpleAuth 时的额外参数 'option'

转载 作者:行者123 更新时间:2023-11-28 07:15:45 24 4
gpt4 key购买 nike

嗨,我一直在与快速错误作斗争,因为我无法匹配 objective-c 方法的参数

    SimpleAuth.authorize("instagram", 

options: ["scope" : "likes"], completion: {

(responseObject : NSDictionary!, error : NSError!) -> Void in

self.accessToken = responseObject["credentials"]["token"]

......

})

//错误调用中的额外参数'options'

声明为:

  + (void)authorize:(NSString *)provider options:(NSDictionary *)options completion:(SimpleAuthRequestHandler)completion;

代码完成是:

  SimpleAuth.authorize(<#provider: String!#>, options: <#[NSObject : AnyObject]!#>, completion: <#SimpleAuthRequestHandler!##(AnyObject!, NSError!) -> Void#>)

我尝试过类型转换、向下转换、声明为单独的变量,但仍然无法正常工作。

任何想法,将不胜感激

最佳答案

这是您对完成 block 的定义。 SimpleAuthRequestHandler 定义为:

typedef void (^SimpleAuthRequestHandler) (id responseObject, NSError *error);

但是你的完成 block /闭包定义为:

(responseObject : NSDictionary!, error : NSError!) -> Void in

你不能直接将类型从 id(Swift 中的 AnyObject)更改为 NSDictionary! 而不显式转换它。你的电话应该看起来像这样:

SimpleAuth.authorize("instagram", options: ["scope" : "likes"], completion: {
(responseObject : AnyObject!, error : NSError!) -> Void in

/* ... */
})

然后您可以使用强制转换将 responseObject 设为 NSDictionary:

var response = responseObject as NSDictionary

关于ios - Swift 错误 - 调用 SimpleAuth 时的额外参数 'option',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26287825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com