2010-05-20 6 views
0

je DataObject de classe commeattendues d' ')' avant className

tête :::

#import <Foundation/Foundation.h> 


@interface DataObject : NSObject { 
    NSString *erorrMessage; 
    BOOL hasError; 
    NSDictionary *dataValues; 
} 

@property(nonatomic, retain)NSString *erorrMessage; 

@property(nonatomic)BOOL hasError; 

@property(nonatomic, retain)NSDictionary *dataValues; 

@end 

Mise en œuvre de classe ::::

#import "DataObject.h" 

    @implementation DataObject 

    @synthesize erorrMessage; 
    @synthesize hasError; 
    @synthesize dataValues; 

    @end 

Et j'ai une autre classe DataManager

En-tête comme ::::

#import <Foundation/Foundation.h> 

@interface DataManager : NSObject 

- (DataObject *)getData :(NSString*)url; 

@end 

mise en œuvre ::::

#import "DataManager.h" 
#import "DataObject.h" 
#import "JSON.h" 


@implementation DataManager 

- (DataObject *)getData :(NSString*)url{ 

    DataObject* dataObject = [[DataObject alloc]init]; 

    NSString *urlString = [NSString stringWithFormat:url]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]; 
     //TODO: Here we have to check the internet connection before requesting.  
    NSError * erorrOnRequesting; 
    NSData  *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&erorrOnRequesting]; 
    NSString* responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    if(erorrOnRequesting != nil) 
    { 
     dataObject.hasError = YES; 
     dataObject.erorrMessage = @"Error on requsting to the web server"; 
     return dataObject; 
    } 

    NSError *errorOnParsing; 
    SBJSON *json = [[SBJSON new] autorelease]; 
    NSDictionary *dataValues = [json objectWithString:responseString error:&errorOnParsing]; 
    [responseString release]; 

    if(errorOnParsing != nil) 
    { 
     //TODO: We have to send the website a feedback that there is some problem on the server end. 
     dataObject.hasError = YES; 
     dataObject.erorrMessage = @"Error on parsing, the server returned invalid data."; 
     return dataObject; 
    } 

    dataObject.hasError = NO; 
    dataObject.dataValues = dataValues; 

    return dataObject; 
} 

@end 

Maintenant, quand je construis, je suis une erreur dans l'en-tête de DataManager où je #import dataObject tête, il dit "erreur: attendu ')' avant DataObject"

Je ne comprends pas ce que j'ai manqué.

Merci pour l'aide ..

Répondre

3

Vous avez oublié de définir le type DataObject dans votre fichier d'en-tête DataManager.

Votre fichier d'en-tête DataManager devrait ressembler à ceci:

#import <Foundation/Foundation.h> 

@class DataObject; 

@interface DataManager : NSObject 

- (DataObject *)getData :(NSString*)url; 

@end 
+2

je trouve préférable de transmettre-déclarer des classes dans les interfaces afin d'éviter les dépendances circulaires. Pour ce faire: @class DataObject; –

+0

Merci Graham, vous avez raison. –

Questions connexes