Iam erhalte eine EXC_BAD_ACCESS die ganze Zeit und ich kann nicht herausfinden, warum ...Objective-C Anfänger: Getter Setter prob und EXC_BAD_ACCESS Fehler
einfache Aufgabe:
Der Parser Klasse pases XML mit TouchXML in ein NSMutableArray namens listArray. In der Methode grabCountry kann ich auf die Funktionen listArray und listArray.count zugreifen, die gut funktionieren.
Jetzt brauche ich die listArray.count in einer anderen Klasse der MasterViewController. Aber ich bekomme einen EXC_BAD_ACCESS Fehler die ganze Zeit. Bitte helfen! Hier
ist der Code snipplet: parser.h
#import <Foundation/Foundation.h>
@interface Parser : NSObject
@property (strong, retain) NSMutableArray *listArray;
@property (strong, retain) NSURL *url;
-(void) grabCountry:(NSString *)xmlPath;
@end
Parser.m
#import "Parser.h"
#import "TouchXML.h"
@implementation Parser
@synthesize listArray;
@synthesize url;
-(void) grabCountry:(NSString *)xmlPath {
// Initialize the List MutableArray that we declared in the header
listArray = [[NSMutableArray alloc] init];
// Convert the supplied URL string into a usable URL object
url = [NSURL URLWithString: xmlPath];
//XML stuff deleted
// Add the blogItem to the global blogEntries Array so that the view can access it.
[listArray addObject:[xmlItem copy]];
//works fine
NSLog(@"Amount: %i",listArray.count);
}
@end
MasterViewController.h
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "TouchXML.h"
#import "Parser.h"
@class Parser;
@interface MasterViewController : UITableViewController{
Parser *theParser;
}
@end
MasterViewControlelr.m
- (void)viewDidLoad
{
NSString *xmlPath = @"http://url/to/xml.xml";
theParser = [[Parser alloc] init];
//Starts the parser
[theParser grabCountry:xmlPath];
//Here I want to access the Array count, but getting an BAD ACCESS error
NSLog(@"Amount %@",[theParser.listArray count]);
[super viewDidLoad];
}
Kann mir jemand erklären, was das Problem hier ist? Danke!
Danke für die Antwort.Ich änderte alles und es klingt für mich plausibel :) Aber ich bekomme den gleichen Fehler, wenn ich versuche, darauf zuzugreifen: [theParser.listArray count] (aus der MasterViewController-Klasse) – Nico
Schließlich fing das Problem ... Sie verwenden '% @ 'wenn Sie die Zählung (eine Ganzzahl) drucken, wenn Sie'% d' oder '% i' verwenden sollten. Ich werde normalerweise auch davon erwischt. =) Ich habe meine Antwort bearbeitet, um dies zu reflektieren. – neilvillareal
% Ich arbeite ... Kopieren & Einfügen Fehler: -/Sie haben meinen Tag gemacht! – Nico