web-dev-qa-db-ja.com

NSMutableArray addObjectが機能しない

View Controllerの.hファイルでNSMutableArray *categoriesを宣言し、そのプロパティを宣言しました。

.mファイルのNSXMLParserデリゲートのparser:foundCharacters:メソッドには、次のコードがあります。

-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string  
{  
    if (elementFound)  
    {  
        element = string;  
        [self.categories addObject:element];  
    }  
}

しかし、デバッグモードでステップインした後、[self.categories addObject:element]行にカーソルを合わせると、XCodeはサイズが0x0、0オブジェクトであることを通知します。 XMLファイルには3つの要素があるため、3つのアイテムが配列に含まれている必要があります。

私は本当に明白なものを見逃しており、何がわからない。

54
joec

「0x0」の部分はメモリアドレスです。具体的には、「nil」は、可変配列が呼び出されたときに存在しないことを意味します。 -initメソッドで作成してみてください:

categories = [[NSMutableArray alloc] init];

-deallocでリリースすることを忘れないでください。

145
Joshua Nozzi

を使用して空の配列を初期化します

categories = [NSMutableArray array];

配列クラスのメソッドは自動解放されるため、解放する必要はありません。

7
Vishal16