私はSwiftで書かれたiOSアプリケーションを持っています。
DynamoDBテーブル内の特定のアイテムの属性を取得しようとしていますが、代わりにエラーが発生します。iOSのDynamoDBからアイテムを取得できません
AppDelegate.swift:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Initialize the Amazon Cognito credentials provider
let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.USEast1, identityPoolId:"identityPoolId")
let configuration = AWSServiceConfiguration(region:.USEast1, credentialsProvider:credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
// Override point for customization after application launch.
return true
}
ViewController.swift:私はテーブルからブックの名前を取得し、ナビゲーションバーに割り当てしようとしているViewController.swift
で
import AWSDynamoDB
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.default()
dynamoDBObjectMapper.load(Book.self, hashKey: "7", rangeKey: nil).continueWith(executor: AWSExecutor.mainThread(), block: { (task:AWSTask!) -> AnyObject! in
if let error = task.error as NSError? {
print("Error: \(error)")
} else if let tableRow = task.result as? Book {
self.navigationItem.title = tableRow.name
}
return nil
})
}
}
タイトル。
Book.swift:
import AWSDynamoDB
class Book: AWSDynamoDBObjectModel, AWSDynamoDBModeling {
var id: String?
var name: String?
class func dynamoDBTableName() -> String {
return "Books"
}
class func hashKeyAttribute() -> String {
return "id"
}
}
私はアプリを実行すると、私はif
文でViewController.swiftから来て、コンソールにエラーメッセージが表示されます。
Error: Error Domain=AWSMTLModelErrorDomain Code=1 "-[__NSSetI objectAtIndex:]: unrecognized selector sent to instance 0x618000244f50" UserInfo={AWSMTLModelThrownException=-[__NSSetI objectAtIndex:]: unrecognized selector sent to instance 0x618000244f50, NSLocalizedDescription=-[__NSSetI objectAtIndex:]: unrecognized selector sent to instance 0x618000244f50, NSLocalizedFailureReason=-[__NSSetI objectAtIndex:]: unrecognized selector sent to instance 0x618000244f50}
私がしようとしましたアプリで項目を追加して、この問題が私のアプリでAWSの設定に関するものかどうかを確認してください。
DBにアイテムを保存する際のAWSガイドに従ったので、問題はどのようにアイテムを受け取ろうとしているのですか?
保存項目= 作品
は= が
動作しないアイテムを取得しますが、私はそれを解決する助けてくださいことはできますか?あなたはこのような試みを持ちたいかもしれ
var strings: Set<String>?
詳細をお知らせください。あなたは正しく認証を設定していますか?また、アイテムはどこから挿入されていますか?彼らはコードで指定されているバックエンドに同じデータ型を持っていますか? –
@RohanDubal質問に「AppDelegate.swift」のAWS設定を追加しました。私はAWSガイドに従って正しく認証を設定し、アイテムをDBに保存できるかどうかを確認し、アイテムを保存することもできます。アイテムは私によってDBに手動で挿入されます。 'Book.swift'のコードで指定されているのと同じデータ型を持っています。 – Ido