我确定我在做一些愚蠢的事情,但这让我发疯。
我试图遍历数据库结果,从这些结果创建对象,并将对象添加到 NSMutableArray。我已经通过 NSLog 调用验证数据正在从数据库中正确读取并复制到对象,但是 NSMutableArray 的计数总是 返回 0。
这是代码的本质:
while ([rs next]) {
Kana *htemp = [Kana alloc];
htemp.content = [rs stringForColumn:@"hiragana"];
[hiragana addObject:htemp];
}
NSLog(@"Hiragana contains %d objects", [hiragana count]);
假名派生自NSObject,平假名是NSMutableArray的一个实例。
我确定这是菜鸟犯的错误,我希望有人能纠正我。 TIA! :)
最佳答案
从您发布的代码来看,我的猜测是您可能没有正确分配数组。创建对象时,还需要对其进行初始化。因此,这:
Kana *htemp = [Kana alloc];
应该是:
Kata *temp = [[Kana alloc] init];
所有对象都需要以这种方式初始化。因此,如果我是正确的并且您还没有初始化数组,那么您的创建需要从这里开始:
NSMutableArray *hiragana = [NSMutableArray alloc];
为此:
NSMutableArray *hiragana = [[NSMutableArray alloc] init];
出于优化的原因,如果您知道可以容纳多少个对象,您可能还应该指定一个初始容量:
[[NSMutableArray alloc] initWithCapacity:someNumber];
关于objective-c - NSMutableArray 计数总是返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/633699/