2012-03-23 12 views
0

Ich versuche, RestKit in meiner App zu verwenden, und verwende derzeit Master auf GitHub als ein Git-Submodul. Das Ganze ist installiert und läuft. Allerdings, wenn ich versuche, JSON-Daten aus meiner Rails-Anwendung zu bekommen, erhalte ich eine BAD_EXC_ACCESS auf RestKit, genauer gesagt auf RKObjectLoader.m, Linie 365.Ich versuche, Restkit unter iOS zu verwenden - XCode

if ([_delegate respondsToSelector:@selector(request:didLoadResponse:)]) { 
    [_delegate request:self didLoadResponse:_response]; 
} 

nicht sicher, was hier vor sich geht, aber soll ich übernehmen Es ist ein Problem mit Restkit? Hier

ist, was ich versuche zu tun:

-(id) init { 
    self = [super init]; 
    if (self) { 
     RKObjectMapping* patientMapping = [RKObjectMapping mappingForClass:[Patient class]]; 

     [patientMapping mapKeyPath:@"id" toAttribute:@"identifier"]; 
     [patientMapping mapKeyPath:@"first_name" toAttribute:@"first_name"]; 
     [patientMapping mapKeyPath:@"middle_initial" toAttribute:@"middle_initial"]; 
     [patientMapping mapKeyPath:@"last_name" toAttribute:@"last_name"]; 
     [patientMapping mapKeyPath:@"email" toAttribute:@"email"]; 
     [patientMapping mapKeyPath:@"password_hint_question" toAttribute:@"password_hint_question"]; 
     [patientMapping mapKeyPath:@"password_hint_answer" toAttribute:@"password_hint_answer"]; 

     [[RKObjectManager sharedManager].mappingProvider setMapping:patientMapping forKeyPath:@"patients"]; 
    } 
    return self; 
} 

- (void)loadAll { 
    [[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/ios_patient.json" delegate:self]; 
} 

Also im Grunde instanziiert ich diese Klasse und rufen loadall. Mein ios_patient.json gibt den folgenden JSON-Code zurück:

{"patients": [{"id": 1, "first_name": "John", "last_name": "Appleseed", "email": "[email protected]"}]} 

Jede Hilfe würde sehr geschätzt werden.

+1

Sie können NSZombieEnabled aktivieren, um mehr über den Absturz zu erfahren, oder malloc_history mit Prozess-ID verwenden. –

+1

Objective-C-Variablen werden normalerweise in camel case genannt, für das, was es wert ist. Daher sollten Sie überprüfen, ob Ihre "first_name" -Variable als "NSString * firstName" definiert ist und dass Ihre Zuordnung "[patientMapping mapKeyPath: @" firstName "toAttribute: @" first_name "];" –

+0

Auch, 1. Sind Sie sicher, dass Sie Ihren Delegierten nicht freigegeben haben? 2. Verwenden Sie ARC? 3. Haben Sie die RKObjectLoader-Delegate-Methoden implementiert (Anfrage: didLoadResponse :)? –

Antwort

0

Danke für die Kommentare. Es stellt sich heraus, RestKit ist nicht kompatibel mit ARC und ja, ich habe es verwendet. Die Variablen wurden korrekt zugeordnet (obwohl sie nicht Camelcase waren), und die Delegierten wurden ebenfalls richtig eingestellt und implementiert. Gut, dass ich früh im Entwicklungsprozess bin und zu nicht-ARC zurückkehren kann.

1

Sie können einfach ARC und RestKit verwenden, legen Sie einfach den-fno-objc-Bogen auf die RestKit-Dateien.

Verwandte Themen