Ik heb een NSMutableArray *categories
gedeclareerd in mijn view controller .h-bestand en er een eigenschap voor gedeclareerd.
In de parser:foundCharacters:
methode van de NSXMLParser
gemachtigde in mijn .m-bestand, heb ik deze code:
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string
{
if (elementFound)
{
element = string;
[self.categories addObject:element];
}
}
Maar wanneer ik de muisaanwijzer over de regel [self.categories addObject:element]
beweeg nadat ik erin stap in de foutopsporingsmodus, vertelt XCode me dat de grootte 0x0, 0 objecten is. Er zijn 3 elementen in mijn XML-bestand, dus er zouden 3 items in de array moeten staan.
Ik mis iets heel duidelijks en ik weet niet wat.
Antwoord 1, autoriteit 100%
Het “0x0”-gedeelte is een geheugenadres. In het bijzonder “nil”, wat betekent dat uw veranderlijke array niet bestaat op het moment dat deze wordt aangeroepen. Probeer het te maken met uw -init methode:
categories = [[NSMutableArray alloc] init];
Vergeet niet om het vrij te geven in uw -dealloc.
Antwoord 2, autoriteit 5%
Initialiseer een lege array met
categories = [NSMutableArray array];
De array-klassenmethode wordt automatisch vrijgegeven, dus het is niet nodig om deze vrij te geven.