2015-03-23 1 views
2

J'essaie de configurer une table DynamoDB simple pour stocker des données de base. J'ai regardé l'exemple de code fourni par Amazon et pense que j'ai tout fait correctement, mais je reçois l'erreur suivante lorsque j'essaie d'enregistrer un élément:Impossible d'enregistrer dans la table DynamoDB (iOS)

"Erreur: [Error Domain = com.amazonaws.AWSDynamoDBErrorDomain Code = 0 "L'opération n'a pas pu être terminée. (Erreur com.amazonaws.AWSDynamoDBErrorDomain 0.) "UserInfo = {0x7f9c39df9d20 __type = com.amazon.coral.validate # ValidationException, message = L'élément clé fournie ne correspond pas au schéma}]"

La table a un hachage key (chaîne) appelée "UUID" et une clé de plage (chaîne) appelée "EmailAddress". Aucun index secondaire.

Le code J'utilise est:

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

AWSDynamoDBObjectMapper *dynamoDBObjectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper]; 


EaSLIEmailList *emailListItem = [EaSLIEmailList new]; 

emailListItem.UUID = [[NSUUID UUID] UUIDString]; 
emailListItem.EmailAddress = @"[email protected]"; 

NSMutableArray *tasks = [NSMutableArray array]; 
[tasks addObject:[dynamoDBObjectMapper save:emailListItem]]; 

[[BFTask taskForCompletionOfAllTasks:tasks] 
continueWithExecutor:[BFExecutor mainThreadExecutor] withBlock:^id(BFTask *task) { 
    if (task.error) { 
     NSLog(@"Error: [%@]", task.error); 
    } 

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 

    return nil; 
}]; 

Toute aide serait très apprécié.

Merci.

Répondre

3

D'accord, je l'ai corrigé.

Dans ma classe AWSDynamoDBObjectModel, je n'avais pas implémenté complètement le protocole AWSDynamoDBModeling, mais je n'ai pas reçu d'erreur de compilation.

Pour la table que j'ai décrite ci-dessus, vous devez implémenter dynamoDBTableName, hashKeyAttribute et rangeKeyAttribute.