2016-11-29 3 views
0

Ich kann Daten aus einer DynamoDB-Tabelle abrufen.Mit MobileHub können keine Daten aus DynamoDB abgerufen werden.

Completion-Handler-Beschwerde-Antwort ist null, aber log zeigt an, dass es eine Antwort gibt, deren Inhalt der erwartete ist.

So scheint es das Problem tritt auf Zuordnung JSON Antwort auf Tabelle 'Modell myModel.

Um myModel zu erhalten, nahm ich einfach eine Beispiel-App von Mobile Hub und ersetzte vorhandene Felder durch die, die ich benutze.

Antwort

0

Problem gelöst: Modelleigenschaften enthalten Großbuchstaben. Wenn Sie sie entfernen, funktioniert der Prozess.

Nachfolgend wird der nicht funktionierende Code dargestellt. Im Projekt muss der Feldname in DynamoDB mit einem Großbuchstaben beginnen. Ich habe dann nach dieser Regel Eigenschaften mit einem zusätzlichen Präfix-Unterstrich erstellt.

class MyModel: AWSDynamoDBObjectModel, AWSDynamoDBModeling { 

var _UserId: String? 
var _ArticleId: String? 


class func dynamoDBTableName() -> String { 

    return "myTable" 
} 

class func hashKeyAttribute() -> String { 

    return "_UserId" 
} 

class func rangeKeyAttribute() -> String { 

    return "_ArticleId" 
} 

override class func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject] { 
    return [ 
      "_UserId" : "UserId", 
      "_ArticleId" : "ArticleId", 

    ] 
} 

}

Jahr Dies ist der Arbeitscode:

class MyModel: AWSDynamoDBObjectModel, AWSDynamoDBModeling { 

var _userId: String? 
var _articleId: String? 


class func dynamoDBTableName() -> String { 

    return "myTable" 
} 

class func hashKeyAttribute() -> String { 

    return "_userId" 
} 

class func rangeKeyAttribute() -> String { 

    return "_articleId" 
} 

override class func JSONKeyPathsByPropertyKey() -> [NSObject : AnyObject] { 
    return [ 
      "_userId" : "UserId", 
      "_articleId" : "ArticleId", 

    ] 
} 

}

Seltsam, nicht wahr?

Verwandte Themen