我在v3.2下有一个工作的Swift项目,使用AWS APIGateway生成的SDK。但是,我尝试转换为Swift 4.0,现在它没有返回任何结果,也没有错误。
目前这是不受支持的吗?
答案 0 :(得分: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声明 使用表格或声明所有属性对ObjectiveC可见 @objcMembers
示例:
类级别:@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" } }
我会进一步调查,看看我们是否可以通过其他方式缓解这个问题。