2013-10-30 4 views
3

프레임 워크 JSOSNModel로 객체를 직렬화하려고합니다.JSONModel로 직렬화하려고 시도한 후에 오류가 발생했습니다. JSON 쓰기 (...)가 잘못된 유형입니다.

buchung.m

-(NSMutableArray *) FetchDienstleistungenImWarenkorb 
{ 
    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    NSManagedObjectContext *context = [app managedObjectContext]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Warenkorb" inManagedObjectContext:context]; 

    [request setEntity:entity]; 

    NSSortDescriptor *sort1 = [[NSSortDescriptor alloc] initWithKey:@"vondatum" ascending:YES]; 
    NSArray *sortArray = [NSArray arrayWithObjects:sort1, nil]; 

    [request setSortDescriptors:sortArray]; 

    NSError *error; 
    NSArray *fetchedObjects = [[app managedObjectContext]executeFetchRequest:request error:&error]; 

    if (fetchedObjects == nil) { 
     NSLog(@"Houston, we have a problem: %@", error); 
    } 

    DienstleistungModel *dm = [[DienstleistungModel alloc]init]; 

    NSMutableArray *produkt = [[NSMutableArray alloc]init]; 

    for (NSArray *event in fetchedObjects) { 
     dm.dienstleistungid = [event valueForKey:@"produktid"]; 
     dm.vondatum = [event valueForKey:@"vondatum"]; 
     dm.bisdatum = [event valueForKey:@"bisdatum"]; 
     dm.menge = [event valueForKey:@"menge"]; 
     [produkt addObject:dm]; 
     } 
      return product;   // Here iam getting a list of products, saved in a mutable array 

} 


(IBAction)nextPressed:(id)sender { 

    Booking *aktuellebuchung = [[Booking alloc]init]; 
    aktuellebuchung.bestuhlungsid = @"3"; 
    aktuellebuchung.vondatum = self.vonDatumLabel.text; 
    aktuellebuchung.bisdatum = self.bisDatumLabel.text; 
    aktuellebuchung.thema = self.themaTextView.text; 
    aktuellebuchung.personenanzahl = self.anzahlPersonenLabel.text; 
    aktuellebuchung.veranstalter = self.veranstalterLabel.text; 
    aktuellebuchung.dienstetest = [self FetchDienstleistungenImWarenkorb]; 

    NSString *test = [aktuellebuchung toJSONString]; // Here is the error 

booking.h

@interface Booking : JSONModel 
@property (nonatomic, retain) NSString * bestuhlungsid; 
@property (nonatomic, retain) NSString * bisdatum; 
@property (nonatomic, retain) NSString * vondatum; 
@property (nonatomic, retain) NSString * personenanzahl; 
@property (nonatomic, retain) NSString * thema; 
@property (nonatomic, retain) NSString * veranstalter; 
@property (nonatomic, retain) NSMutableArray * dienstetest; 

@end 

DienstleistungModul.h

:

여기

[JSONModel.m:915] EXCEPTION: Invalid type in JSON write (DienstleistungModel)

내 소스 코드입니다 :하지만 다음과 같은 오류를 얻고있다

@protocol DienstleistungModel @end 
@interface DienstleistungModel : JSONModel 
@property (nonatomic, retain) NSNumber * dienstleistungid; 
@property (nonatomic, retain) NSString * bisdatum; 
@property (nonatomic, retain) NSString * vondatum; 
@property (nonatomic, retain) NSNumber * menge; 
@end 

screenshot

당신은 객체가 스크린 샷에서 볼 수 있지만 나는 그것을 직렬화 할 수 없습니다. 도와주세요. 이 같은 귀하의 배열에있는 개체의 형식을 지정하는

@property (nonatomic, retain) NSMutableArray * dienstetest;

이가 될 변화 : screenshot2

+0

배열 속성에 DienstleistungModel 프로토콜이 있습니까? bcz 아마보다 적게보다 큰 그리고 당신의 질문에 코드를 붙여 넣었을 때 기호를 잃었어요 –

+0

그냥 임의의 아이디어 - NSArray로 dienstetest을 선언하고 물마루 가야 볼 수 있는지보십시오 –

답변

2

난 그냥 문제의 같은 종류를 가지고, 문제는 다음과 같은 것이있다 할 것입니다 작동 (내 독일어이기 때문에 그것이 좋은 개체의 가정하지이 좋은) - 당신이 가진 유형을 지정 할 수 있어야한다, 그래서 당신은 이미 프로토콜이 있습니다

@property (nonatomic, retain) NSArray<DienstleistungModel> * dienstetest;

,691을