У меня есть объект структуры данных, который загружается из файла XML в методе «завершил загрузку» делегата.
Если я использую объект данных «printData» изнутри метода load делегата, он показывает всю информацию. Я могу сделать это несколько раз.
Однако у меня есть кнопка, которая запускает второй метод в делегате, и все, что он делает, это запускает метод printData моего объекта данных, но все, что я получаю, это либо ничего, либо какой-то текст произвольного свойства.
например. "UIDeviceFamily" или "ar.lproj" и т. Д. *
После распечатки приложения происходит сбой с ошибкой «EXC_BAD_ACCESS».
Я помню, что там был каталог, в котором можно найти более подробную информацию об этой ошибке, но я не могу вспомнить, какая именно.
Спасибо за любую помощь, которую вы можете предоставить.
Извините, этот код имеет значение в приложении ...
Это код, который заполняет данные.
-(id)initMapFromXMLData:(NSData *)xmlData
{
if (self = [super init])
{
MapXMLParser *parser = [[MapXMLParser alloc] initWithData:xmlData];
[parser setDelegate:parser];
[parser parse];
statementPairs = [NSDictionary dictionaryWithDictionary:parser.statementPairs];
prefPairs = [NSDictionary dictionaryWithDictionary:parser.prefPairs];
clusters = [NSDictionary dictionaryWithDictionary:parser.clusters];
/*
statementPairs = parser.statementPairs;
prefPairs = parser.prefPairs;
clusters = parser.clusters;
[parser release];*/
}
return self;
}
Затем запускается делегат ...
NSData *xmlData;
xmlData = [[NSData alloc] initWithContentsOfFile:@"/Users/oliver/Documents/XCode stuff/Saviio/Saviio 2/Saviio/Classes/Statements"];
myMap = [[Map alloc] initMapFromXMLData:xmlData];
А затем в том же методе делегата я отображаю его ...
[myMap printClusters];
... который работает ...
-(void)printClusters
{
NSLog(@"Printing Clusters for %@", self);
for (int i = 1; i <= [clusters count]; i++)
{
Cluster *tempCluster;
tempCluster = [clusters objectForKey:[NSString stringWithFormat:@"%d", i]];
NSLog(@"Cluster %@", tempCluster.name);
for (int j = 0 ; j < [tempCluster.fgids count]; j++)
{
Preference *tempPref;
tempPref = [prefPairs objectForKey:[[tempCluster.fgids objectAtIndex:j] stringValue]];
NSLog(@"Pref ---> %@/%@", tempPref.left, tempPref.right);
for (int k = 0 ; k < [tempPref.qids count]; k++)
{
Statement *tempStat;
tempStat = [statementPairs objectForKey:[[tempPref.qids objectAtIndex:k] stringValue]];
NSLog(@"Stat -------> %@ - %@", tempStat.left, tempStat.right);
}
}
}
NSLog(@"END");
}
Это все отлично работает.
Однако, когда я затем запускаю тот же метод [myMap printClusters] из метода, который запускается нажатием кнопки в делегате, он печатает первую строку ... «Печать кластеров для».
А потом странная строка и затем сбой.