Ios 快速传递DynamoDB分页输出结果到另一个类中的函数
我试图将Amazon.swift“AWS”类中DynamoDB函数设置的结果传递回我的ViewController。其目的是使用数据在地图上创建GPS点(ViewController具有完整的MapKit/mapView设置) 这是DynamoDB功能:Ios 快速传递DynamoDB分页输出结果到另一个类中的函数,ios,swift,amazon-web-services,Ios,Swift,Amazon Web Services,我试图将Amazon.swift“AWS”类中DynamoDB函数设置的结果传递回我的ViewController。其目的是使用数据在地图上创建GPS点(ViewController具有完整的MapKit/mapView设置) 这是DynamoDB功能: func read_multipin_data() -> AWSDynamoDBPaginatedOutput { let cond = AWSDynamoDBCondition() let v1 = AWSDyn
func read_multipin_data() -> AWSDynamoDBPaginatedOutput {
let cond = AWSDynamoDBCondition()
let v1 = AWSDynamoDBAttributeValue(); v1.S = ADate
cond.comparisonOperator = AWSDynamoDBComparisonOperator.EQ
cond.attributeValueList = [ v1 ]
let exp = AWSDynamoDBScanExpression()
exp.scanFilter = [ "date" : cond ]
self.scan(exp).continueWithSuccessBlock({ (task: BFTask!) -> BFTask! in
let results = task.result as AWSDynamoDBPaginatedOutput
return results // Error: 'AWSDynamoDBPaginatedOutput' is not convertible to 'BFTask'
})
}
func scan(expression : AWSDynamoDBScanExpression) -> BFTask! {
let mapper = AWSDynamoDBObjectMapper.defaultDynamoDBObjectMapper()
return mapper.scan(AWS.self, expression: expression)
}
目前仅尝试恢复my ViewController中数据的第二个功能是:
@IBAction func refresh_db_pins(){
let all_annotations_in: AWSDynamoDBPaginatedOutput = AWS().read_multipin_data()
}
我尝试返回结果时遇到的错误是:
“AWSDynamodPaginateDoutput”不能转换为“BFTask”
我尝试了许多不同的方法,包括将JSON格式的数据转换为数组、字典等,但都没有成功
非常感谢您的帮助 您可以将
read\u multipin\u data
方法重写为如下内容:
func read_multipin_data() -> BFTask {
let cond = AWSDynamoDBCondition()
let v1 = AWSDynamoDBAttributeValue()
v1.S = ADate
cond.comparisonOperator = AWSDynamoDBComparisonOperator.EQ
cond.attributeValueList = [ v1 ]
let exp = AWSDynamoDBScanExpression()
exp.scanFilter = [ "date" : cond ]
return self.scan(exp);
}
在continueWithSuccessBlock
中,您需要返回BFTask
或nil
的实例,但您返回的是AWSDynamodPaginateDoutput
的实例。这就是编译器抱怨的原因