DynamoDB 项目的某些属性为零



在我的 Swift 编写的 iOS 应用程序上,我连接了 DynamoDB 服务。

HomeViewController,我正在扫描 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 个属性(浮点型、浮点型、布尔型(。

当我尝试从扫描中获得的其中一个项目获取 Float 属性时,我得到nil.

看起来它只能获得字符串,而没有其他任何东西。

tableView(cellForRowAt:) TableViewController中,我有以下代码,它从项目中获取属性:

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

我能够获得字符串类型的name属性,但我无法获得浮点类型的price属性。

如何解决此问题并使用扫描从 DynamoDB 表中获取浮点型和布尔属性?

显然,我在Item.swift文件中的价格变量使用了不同的类型。

而不是:

var price: Float?
var booleanValue: Bool?

我应该使用:

var price: NSNumber?
var booleanValue: NSNumber?

Item.swift文件上。

相关内容

  • 没有找到相关文章

最新更新