AWS 和 Swift 3 的变化

Posted

技术标签:

【中文标题】AWS 和 Swift 3 的变化【英文标题】:AWS and Changes in Swift 3 【发布时间】:2016-09-14 18:56:04 【问题描述】:

在 Swift 3 更新之后,我在编译我的应用程序时遇到了一些问题。大多数错误都很容易修复,但我遇到了一些特别是 AWS 的错误。是否有针对 Swift 3 的某种更新的 AWS 开发工具包?我试着查了一下,但没有找到。无论如何,我无法解决的两个主要错误如下:

“类型 'IdentityProviderManager' 不符合协议 AWSIdentityProviderManager。”这是针对我按照教程创建的一个类,用于通过 AWS Cognito 设置登录。代码是:

class IdentityProviderManager: NSObject, AWSIdentityProviderManager
var tokens : [NSString : NSString]?
init(tokens: [NSString : NSString])      
    self.tokens = tokens 
    
@objc func logins() -> AWSTask<AnyObject> 
    return AWSTask(result: tokens as AnyObject)

在 AWSIdentityProviderManager 的 AWS 文档中,它说唯一需要的功能是登录,我有。有没有一种简单的方法可以解决我遗漏的问题?

另一个错误在我的 LoginViewController 类中:“类型 'LoginViewController' 不符合协议 'AWSCognitoIdentityPasswordAuthentication'。”这里的问题似乎更清楚了,因为文档说 getPasswordAuthenticationDetails() 是必需的方法,并且 XCode 在更新到 Swift 3 时似乎已将此方法更改为 getDetails() ,除非我弄错了并且它不存在开始或某事。在任何情况下,自动完成都没有给我原始方法,我似乎无法使类符合协议。

抱歉,如果答案已经在某个地方的文档中,但据我所知,AWS SDK(至少是我拥有的版本)似乎与 Swift 3 不兼容。我可以做些什么来解决这些错误?

【问题讨论】:

你的代码对我不起作用,但这解决了它:***.com/questions/39045869/… 【参考方案1】:

没关系,事实证明 XCode 并没有向我显示进行所需更改的选项。自动修复实现了所需功能的略有不同的版本,最终一切正常。

【讨论】:

以上是关于AWS 和 Swift 3 的变化的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 - UTC 到时间前标签,考虑 12 小时 / 24 小时设备时间变化

Xcode 8 beta 6 AnyObject Swift 3 变化

如何以编程方式制作随时间变化的 UIButton/CollectionViewCell Swift 3

为啥集合视图中的动态集合单元格不显示为给定大小并且在 swift 3 中滚动后会发生变化

Swift2.2中的新变化

Swift 2 中 registerUserNotificationSettings 的变化?