我确定我做的很傻,但这让我发疯了.
我正在尝试遍历数据库结果,从这些结果创建对象,并将对象添加到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];