将对象添加到NSMutableArray

roo*_*oof 3 objective-c ios5

我正在尝试将对象添加到NSMutableArray(categoriasArray),但它不是由迭代器完成的:

@synthesize categoriasArray;

for (int i = 0; i < [categories count]; i++) {

        categoria *cat = [[categoria alloc] initWithDictionary:[categories objectAtIndex:i]]; 
        [self.categoriasArray addObject:cat]; 
        cat=nil;

    }
Run Code Online (Sandbox Code Playgroud)

在for迭代器之后,categoriasArray有0个对象.

非常感谢

sch*_*sch 6

nil在循环开始之前检查数组是不是:

NSLog(@"%@", self.categoriasArray); // This will output null

for (int i = 0; i < [categories count]; i++) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

你应该理解的是,合成属性categoriasArray不会初始化它,它只是生成setter和getter方法.因此,要解决您的问题,请在循环之前(或在类的init方法中)初始化数组:

self.categoriasArray = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)

另一种可能性是它categories本身nil或不包含任何物品.要检查它,NSLog在循环之前添加s:

NSLog(@"%@", self.categoriasArray); 
NSLog(@"%@", categories); 
NSLog(@"%d", [categories count]); 

for (int i = 0; i < [categories count]; i++) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)