2017-05-12 7 views
0

私のSwiftで書かれたiOSアプリケーションでは、DynamoDBサービスが接続されています。 HomeViewControllerDynamoDBアイテムの属性の一部はnilです

私は1つ私のDynamoDBのアカウントでテーブルをスキャンするんだ、と私はそれが働いたかどうかを確認するために、結果を印刷しています:

let scanExpression = AWSDynamoDBScanExpression() 
scanExpression.filterExpression = "begins_with (id, :id)" 
scanExpression.expressionAttributeValues = [":id": GlobalVars.id] 

GlobalVars.dynamoDBObjectMapper.scan(Item.self, expression: scanExpression).continueWith(block: { (task:AWSTask<AWSDynamoDBPaginatedOutput>!) -> Any? in 
    if let error = task.error as NSError? { 
     print("The request failed. Error: \(error)") 
    } else if let paginatedOutput = task.result { 
     for item in paginatedOutput.items as! [Item] { 
      print("items", item) 

      GlobalVars.items += [item] 
      print("items array:", GlobalVars.items) 
     } 
     GlobalVars.numberOfItems = paginatedOutput.items.count 
    } 
    return() 
}) 

for-inループ内のすべての時間は、それがアイテムを印刷し、それテーブルから手に入れました。各項目には7つの属性がありますが、印刷する際には4つの属性しか表示されません。私は3つの他のもの(フロート、フロート、ブール)なしで、文字列属性のみを参照してください。

私がスキャンで取得したアイテムの1つからFloat属性を取得しようとしているとき、私はnilを取得します。

文字列しか取得できないようです。

tableView(cellForRowAt:)TableViewController

I持っているアイテムから属性を取得し、このコード:私は文字列型であるname属性を取得することができるんだけど、私はpriceを取得することはできませんよ

let item: Item = items[indexPath.row] 

    let name: String = item.name! 
    cell.itemNameLabel.text = name 

    let priceFloat: Float = item.price! 
    let price: String = priceFloat.description 
    cell.itemPriceLabel.text = price 

属性は浮動小数点型です。

この問題を解決し、スキャンを使用してDynamoDBテーブルからFloat属性とBoolean属性を取得するにはどうすればよいですか?

答えて

0

明らかに、私はItem.swiftファイルのprice変数に異なるタイプを使用しました。

の代わりに:

var price: NSNumber? 
var booleanValue: NSNumber? 

Item.swiftファイルの場合:

var price: Float? 
var booleanValue: Bool? 

私が使用することになりました。

関連する問題