我正在爲iOS編寫一個簡單的多項選擇問題。無法使用RestKit檢索數據,因爲類不是鍵值編碼兼容
我想創建一個API,以便我可以檢索問題並存儲用戶的答案。我使用django和tastypie作爲後端。
我用這個功能來加載quesion在我的應用程序:
- (void)loadQuestion
{
RKObjectMapping* questionMapping = [RKObjectMapping mappingForClass:[Question class]];
[questionMapping addAttributeMappingsFromDictionary:@{
@"question": @"question",
}];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:questionMapping pathPattern:nil keyPath:@"question" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
NSURL *URL = [NSURL URLWithString:@"http://127.0.0.1:8000/api/v1/question/2/?format=json"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSLog(@"request : %@", request);
RKObjectRequestOperation *objectRequestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[responseDescriptor]];
[objectRequestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
RKLogInfo(@"Load collection of Articles: %@", mappingResult.array);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
RKLogError(@"Operation failed with error: %@", error);
}];
[objectRequestOperation start];
}
這裏是我的question.h:
#import <Foundation/Foundation.h>
@interface Question : NSObject
@property (strong) NSString *question;
@end
而且我question.m
@implementation Question
@synthesize question = _question;
@end
的JSON如下:
{
"chapter": "/api/v1/chapter/2/",
"id": 2, "
pub_date": "2013-04-25T19:23:42.930097",
"question": "Quelle est la capitale de ce pays : Emirats Arabes Unis ?",
"resource_uri": "/api/v1/question/2/"
}
而且tastypie API是:
from tastypie.resources import ModelResource
from tastypie import fields
from .models import Question, Chapter
class ChapterResource(ModelResource):
class Meta:
queryset = Chapter.objects.all()
resource_name = 'chapter'
class QuestionResource(ModelResource):
chapter = fields.ForeignKey(ChapterResource, 'chapter')
class Meta:
queryset = Question.objects.all()
resource_name = 'question'
我得到的錯誤是: 終止應用程序由於未捕獲的異常 'NSUnknownKeyException',原因:「[< __NSCFString 0x76b3030> valueForUndefinedKey:]:此類不關鍵問題的編碼標準。「
我讀https://github.com/RestKit/RestKit/wiki/Object-Mapping但沒有找到我做錯了什麼。
我的班級出了什麼問題?
返回什麼JSON? – Wain 2013-04-29 23:10:42
@JSON是:{ 「章節」:「/ api/v1/chapter/2 /」, 「id」:2,「 pub_date」:「2013-04-25T19:23:42.930097」, 「問題」:「Quelle est la capitale de ce pays:Emirats Arabes Unis?」, 「resource_uri」:「/ api/v1/question/2 /」 } – ltbesh 2013-04-30 11:45:18