NSMutableArray计数始终返回零

Joh*_*ker 7 cocoa objective-c

我确定我做的很傻,但这让我发疯了.

我正在尝试遍历数据库结果,从这些结果创建对象,并将对象添加到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]);
Run Code Online (Sandbox Code Playgroud)

假名源自NSObject,平假名是NSMutableArray的一个实例.

我确定这是一个新手的错误,我希望有人可以帮我.TIA!:)

Mat*_*all 39

我的猜测,从您发布的代码判断,您可能没有正确分配您的阵列.创建对象时,还需要初始化它们.因此,这个:

Kana *htemp = [Kana alloc];
Run Code Online (Sandbox Code Playgroud)

应该:

Kata *temp = [[Kana alloc] init];
Run Code Online (Sandbox Code Playgroud)

所有对象都需要以这种方式初始化.因此,如果我是正确的并且你没有初始化你的数组,那么你的创建需要从这个:

NSMutableArray *hiragana = [NSMutableArray alloc];
Run Code Online (Sandbox Code Playgroud)

对此:

NSMutableArray *hiragana = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)

出于优化原因,如果您知道可能包含多少个对象,则还应该指定初始容量:

[[NSMutableArray alloc] initWithCapacity:someNumber];
Run Code Online (Sandbox Code Playgroud)