2012-10-24 4 views
0

2 일 동안 작업하고 있습니다 ... 원격 xml을 파싱/코어 데이터에 매핑하고 싶습니다. 자습서를 많이 읽었으므로이 시점에서 로컬 서버 (yyuupii!)에 연결할 수 있으며 xml을 얻을 수 있지만 매핑에 문제가 있습니다. 나는코어 데이터에 XML을 매핑하는 RestKit

를 얻을

- [RKObjectLoader canParseMIMEType :] MIME 타입 '응용 프로그램/XML'

에 대한 파서 찾을 수 없습니다 - [RKObjectLoader isResponseMappable] 상태 코드가 발생했습니다 예기치 않은 응답 : 200 (MIME 형식 : 응용 프로그램/XML을 -> URL : http : ///list.xml - http : /// http : /// http : ///) 2012-10-24 14 : 13 : 12.201 Sierpien [4650 : 907] 오류 도메인 = org.restkit.RestKit.ErrorDomain 코드 = 4 "작업을 수행 할 수 없습니다 (org.restkit.RestKit.ErrorDomain 오류 4)."

감사의 말을 전합니다.

내 XML

<packs> 
    <pack> 
     <cover>cover.png</cover> 
     <info>Jakis.adres.pl</info> 
     <link>Opis</link> 
     <name>wrzesień</name> 
     <price>5.00</price> 
    </pack> 
    <pack> 
     <cover>cover2.png</cover> 
     <info>Jakis1.adres.pl</info> 
     <link>Opis31</link> 
     <name>wrzesień12</name> 
     <price>15.00</price> 
    </pack> 
</packs> 

내 법인

@interface Pack : NSManagedObject 

@property (nonatomic, retain) NSString * name; 
@property (nonatomic, retain) NSString * link; 
@property (nonatomic, retain) NSString * price; 
@property (nonatomic, retain) NSString * info; 
@property (nonatomic, retain) NSString * cover; 

@end 

- (id)initClient 
{ 
    self = [super init]; 
    if (self) { 
     RKObjectManager *client = [RKObjectManager objectManagerWithBaseURL:[RKURL URLWithString:@"http://10.1.1.5:8888/"]]; 
     NSLog(@"I am your RKObjectManager singleton : %@", [RKObjectManager sharedManager]); 
     client.serializationMIMEType = RKMIMETypeXML; 

     RKObjectMapping* listMapping = [RKObjectMapping mappingForClass:[Pack class]]; 
     [listMapping mapKeyPath:@"cover" toAttribute:@"cover"]; 
     [listMapping mapKeyPath:@"name" toAttribute:@"name"]; 
     [listMapping mapKeyPath:@"info" toAttribute:@"info"]; 
     [listMapping mapKeyPath:@"link" toAttribute:@"link"]; 
     [listMapping mapKeyPath:@"price" toAttribute:@"price"]; 

     [[RKObjectManager sharedManager].mappingProvider setMapping:listMapping forKeyPath:@"packs.pack"]; 
    } 
    return self; 
} 

- (void)loadPacks { 
    [[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/list.xml" delegate:self]; 
} 

답변

0

내가 RKObjectManager을 던져 좋아, 지금은 RKClient 연결 내 구현,

로 얻을 XML [[RKClient sharedClient] get:@"/list.xml" delegate:self];

그런 다음 Xml을 GDataXML로 구문 분석하고 Pack에 해당 파싱 된 데이터를 채 웁니다. 그것은 작동합니다.

관련 문제