2017-05-16 3 views
1

Vielen Dank im Voraus für jede Hilfe. Ich versuche, Stapelobjekte (mehrere Objekte laden) aus einer DynamoDb-Tabelle mithilfe des AWS iOS SDK (Swift) zu erhalten. Ich kann ein Element mit der Block-Syntax laden, aber ich muss 10 oder mehr laden. Ich möchte nicht 10 Block-Aufrufe verwenden, um sie einzeln zu laden. Ich habe versucht, die attach stack overflow Link (wo die ähnliche Lösung gegeben ist) zu folgen, aber ich bekomme die folgende Compiler-Fehlermeldung. Ich komme aus dem Java-Hintergrund, könnte also auch ein Syntaxproblem sein. Ist es der richtige Weg, mehrere Artikel zu laden? Ich möchte keine Low-Level-API verwenden. Irgendeine Hilfe, wo ich falsch liege. Vielen Dank.aws dynamodb wie man Objekt Mapper mit Batch verwenden in ios swift

AnyObject? is not convertible to Any?

aws dynamodb how to use object mapper with batch get in ios

let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.default() 
     var tasksList = Array<AWSTask<AnyObject>>() 
     for i in 1...10 { 

      tasksList.append(dynamoDBObjectMapper.load(AWSCards.self, hashKey: "SH_"+String(i), rangeKey: nil)) 
     } 

     AWSTask.init(forCompletionOfAllTasksWithResults: tasksList).continueWithBlock { (task) -> AnyObject? in 
         if let cards = task.result as? [AWSCards] { 
          print(cards.count) 
         } 
         else if let error = task.error { 
          print(error.localizedDescription) 
         } 
         return nil 
       } 

Antwort

0

Haben Sie einen Versuch mit den folgenden Codes (Swift 4.1, 9. Februar 2018):

let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.default() 
     var tasksList = Array<AWSTask<AnyObject>>() 
     for i in 1...10 { 

      tasksList.append(dynamoDBObjectMapper.load(AWSCards.self, hashKey: "SH_"+String(i), rangeKey: nil)) 
     } 

     AWSTask<AnyObject>.init(forCompletionOfAllTasksWithResults: tasksList).continueWith { (task) -> Any? in 
         if let cards = task.result as? [AWSCards] { 
          print(cards.count) 
         } 
         else if let error = task.error { 
          print(error.localizedDescription) 
         } 
         return nil 
       } 
Verwandte Themen