gpt4 book ai didi

ios - 尝试从 DynamoDB (Swift) 读取时出现 DynamoDBObjectModel 错误

转载 作者:行者123 更新时间:2023-11-30 11:21:51 27 4
gpt4 key购买 nike

刚刚开始使用 DynamoDB,我正在关注他们的 Swift 示例,但我不断收到相同的错误:'NSInternalInconsistencyException',原因:'_regionId 不是 TestApp.RegionLocations 的属性。'

带有分区键 regionId 的 DynamoDB 项目如下所示:

{
"locations": [
{
"latitude": 40.1234567,
"longitude": 70.1234567,
"name": "Location 1",
"locationId": "LOCATION1-123"
},
{
"latitude": 41.1234567,
"longitude": 71.12345678,
"name": "Location 2",
"locationId": "Location2-123"
}
],
"regionId": "region1"
}

从 AWS 下载的 DynamoDBObjectModel。我完全未受影响:

import Foundation
import UIKit
import AWSDynamoDB

class RegionLocations: AWSDynamoDBObjectModel, AWSDynamoDBModeling {

var _regionId: String?
var _locations: [String: String]?

class func dynamoDBTableName() -> String {

return -nameOfTable-
}

class func hashKeyAttribute() -> String {

return "_regionId"
}

override class func jsonKeyPathsByPropertyKey() -> [AnyHashable: Any] {
return [
"_regionId" : "regionId",
"_locations" : "locations",
]
}
}

获取在我的 VC 的 ViewDidLoad() 中调用的函数。基本上是从AWS的示例中复制的,更改了变量名称和rangeKey:nil:

func fetchLocations(){

let dynamoDbObjectMapper = AWSDynamoDBObjectMapper.default()
let locations: RegionLocations = RegionLocations();
locations._regionId = "region1"

dynamoDbObjectMapper.load(
RegionLocations.self,
hashKey: locations._regionId!,
rangeKey: nil,
completionHandler: {
(objectModel: AWSDynamoDBObjectModel?, error: Error?) -> Void in
if let error = error {
print("Amazon DynamoDB Read Error: \(error)")
return
}
print("An item was read.")
})
}

已尝试(未成功)在 dynamoDbObjectMapper.load() 内部使用: hashKey: "region1"而不是使用上面代码中的 RegionLocations 对象。还重新启动了 Xcode 并多次清理了项目。我对自己做错了什么感到非常困惑,因为我主要遵循 AWS 的教程。

最佳答案

这可能是由于类成员缺少 @objc 注释而发生的。请更新您的表定义,为所有成员添加 @objc,如下所示:https://docs.aws.amazon.com/aws-mobile/latest/developerguide/add-aws-mobile-nosql-database.html#add-aws-mobile-nosql-database-crud 。原因在这里澄清:https://github.com/aws/aws-sdk-ios/issues/750#issuecomment-337046816

谢谢,罗汉

关于ios - 尝试从 DynamoDB (Swift) 读取时出现 DynamoDBObjectModel 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51177637/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com