我有一个使用 AWS APIGateway 生成的 SDK 在 v3.2 下工作的 Swift 项目。但是,我尝试转换为 Swift 4.0,现在它没有返回任何结果也没有错误。
这只是目前不受支持吗?
我想我在github上找到了答案:
https://github.com/aws/aws-sdk-ios/issues/744
相关引述如下,关于何时支持 Swift 4 没有回应。
目前生成的 SDK 只有 Swift 3。
更新 #1:我前段时间发现这个问题提供了解决这个问题的方法:https :
//github.com/aws/aws-sdk-ios/issues/750#issuecomment-337046816
这是由于@objc 推理的变化而发生的。查看更改:SE-0160
这意味着,Swift 类中的属性对 ObjectiveC 代码不再可见,我们需要明确地使它们可用。Swift 4 当前的解决方法是在要映射到 dynamo db 表的属性之前使用 @obj 声明,或者使用 @objcMembers 声明所有属性对 ObjectiveC 可见
例子:
类级别:@objcMembers 类 MyTable:AWSDynamoDBObjectModel、AWSDynamoDBModeling {
var hashKey: String? var attribute1: NSNumber? public static func dynamoDBTableName() -> String { return "MyTableName" } public static func hashKeyAttribute() -> String { return "hashKey" } } or
属性级别:类 MyTable:AWSDynamoDBObjectModel、AWSDynamoDBModeling {
@objc var hashKey: String? @objc var attribute1: NSNumber? public static func dynamoDBTableName() -> String { return "MyTableName" } public static func hashKeyAttribute() -> String { return "hashKey" } }
我将进一步调查,看看我们是否可以通过其他方式缓解这个问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句