Désolé pour mon mauvais anglais. Je viens d'Allemagne et j'ai quelques problèmes avec l'analyse de mon fichier xml. J'utilise la dernière version du SDK iOS, y compris Xcode.L'analyse XML provoque l'erreur
Parsing mon fichier xml provoque une erreur bien connue, appelée « Demande de membre « tranches » dans quelque chose pas une structure ou d'une union »
Semble que je l'ai oublié quelque chose, mon initialisation Delgegate classe? Serait génial si quelqu'un pouvait m'aider à traverser. Ce est la seule erreur que je reçois ... narrf ..
Voici une partie du code, pertinent pour ce problème:
Mon XMLParser .h Fichier
#import <UIKit/UIKit.h>
@class XMLAppDelegate, Slice;
@interface XMLParser : NSObject <NSXMLParserDelegate>{
NSMutableString *currentElementValue;
XMLAppDelegate *appDelegate;
Slice *aSlice;
}
- (XMLParser *) initXMLParser;
@end
Et voici quelques parties de le fichier .m qui montre l'erreur:
#import "XMLParser.h"
#import "XMLAppDelegate.h"
#import "Slice.h"
@implementation XMLParser
- (XMLParser *) initXMLParser {
[super init];
appDelegate = (XMLAppDelegate *)[[UIApplication sharedApplication] delegate];
return self;
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"Channel"]) {
//Initialize the array.
appDelegate.slices = [[NSMutableArray alloc] init];
}
else if([elementName isEqualToString:@"Slice"]) {
//Initialize the slice.
aSlice = [[Slice alloc] init];
//Extract the attribute here.
aSlice.sliceID = [[attributeDict objectForKey:@"id"] integerValue];
NSLog(@"Reading id value :%i", aSlice.sliceID);
}
NSLog(@"Processing Element: %@", elementName);
}
l'erreur apparaît après que j'essaie d'utiliser le tableau de tranches de mon délégué.
Serait génial si quelqu'un sait quoi faire, cette petite chose me rend malade. ^^
Salut, merci pour la réponse rapide. – DevZarak
j'ai vérifié ma classe Delegate un il semble que je l'ai déclaré la propriété tranches: #import @interface XMLAppDelegate: NSObject { UIWindow * fenêtre; UINavigationController * navigationController; \t \t NSMutableArray * tranches; } @property (nonatomic, retain) Fenêtre IBOutlet UIWindow *; @property (nonatomic, retain) IBOutlet UINavigationController * navigationController; @property (nonatomic, retain) IBOutlet NSMutableArray * tranches; @end –
DevZarak
Cela semble juste, l'incapacité de mettre en forme le code dans les commentaires de côté, mais le problème demeure: Le compilateur ne sait pas que l'objet que vous essayez d'utiliser possède la propriété que vous essayez d'utiliser.Soit l'erreur est sur une ligne de code que vous n'avez pas montrée (je remarque que le message d'erreur dans votre question dit "tranches" plutôt que "tranches"), ou vous n'avez pas réellement importé l'en-tête dans votre code réel, ou vous n'avez pas déclaré la propriété dans l'en-tête dans votre code réel. Je suis actuellement penché vers # 1. Notez que vous pouvez double-cliquer sur les erreurs de construction pour accéder au code du problème. –