Все,
Отказ от ответственности: я знаю, что есть другие вопросы, которые задают подобные вопросы, но ни один из них не дает ответа, который я понимаю, или ответа, относящегося к моей ситуации.
У меня есть два класса, classA и classB.В classA есть метод экземпляра void, который создает NSMutableDictionary (если вам нужны подробности, это XMLparser).После запуска XMLParser класса A и создания и заполнения NSMutableDictionary вызывается classB, который должен выполнить некоторые другие действия с этим словарем.По какой-то причине classB не может получить доступ к NSMutableDictionary в classA (фактически, он может получить к нему доступ, но по какой-то причине он отображается как "NULL").Что мне делать?
Заранее спасибо.
РЕДАКТИРОВАТЬ: Вы запросили исходный код, вы получили его.Класс А ниже, рассматриваемый словарь называется «ответ».
#import "XMLParser.h"
#import "CardSetupViewController.h"
@implementation XMLParser
@synthesize response;
- (XMLParser *) initXMLParser
{
self = [super init];
// init dictionary of response data
response = [[NSMutableDictionary alloc] init];
return self;
}
//Gets Start Element of SessionData
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"SessionData"])
{
NSLog(@"Found SessionData in the return XML! Continuing...");
//response is a NSMutableArray instance variable
//THIS SHOULD NEVER NEED TO BE USED
if (!response)//if array is empty, it makes it!
{
NSLog(@"Dictionary is empty for some reason, creating...");
response = [[NSMutableDictionary alloc] init];
}
//END: THIS SHOULD NEVER BE USED
return;
}
else
{
currentElementName = elementName;
NSLog(@"Current Element Name = %@", currentElementName);
return;
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if (!currentElementValue) {
// init the ad hoc string with the value
currentElementValue = [[NSMutableString alloc] initWithString:string];
} else {
[currentElementValue setString:string];
NSLog(@"Processing value for : %@", string);
}
}
//Gets End Element of SessionData
- (void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"SessionData"])
{
// We reached the end of the XML document
// dumps dictionary into log
NSLog(@"Dump:%@", [response description]);
return;
}
else
{
//Adds key and object to dictionary
[response setObject:currentElementValue forKey:currentElementName];
NSLog(@"Set values, going around again... brb.");
}
currentElementValue = nil;
currentElementName = nil;
}
@end