Iphone 然后它就会崩溃。所以,您需要使用调试指针手动检查发生的位置

Iphone 然后它就会崩溃。所以,您需要使用调试指针手动检查发生的位置,iphone,uitableview,ios4,Iphone,Uitableview,Ios4,更改此行以解决此问题 animals = [NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil]; 由此 animals = [[NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil] retain]; 然后在Dealoc中发

更改此行以解决此问题

animals = [NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil];
由此

animals = [[NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil] retain];
然后在Dealoc中发布。

我想会发生什么

您的数组
animal
numberOfRowsInSection
方法之前的某个地方被释放,然后它的内存被字符串占用

因此,当您在
numberofrowsinssection
中调用count时,它就会崩溃。所以,您需要使用调试指针手动检查发生的位置

更改此行以解决此问题

animals = [NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil];
由此

animals = [[NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil] retain];

并在dealoc中释放它。

您尚未分配动物数组

替换以下行

animals = [NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil];


然后在dealloc方法中释放对象:表示添加
[动物释放]在dealloc方法中。

您尚未分配动物数组

替换以下行

animals = [NSMutableArray arrayWithObjects:@"Cat", @"Dog", @"Fish", @"Squirrel", @"Bear", @"Turtle", nil];


然后在dealloc方法中释放对象:表示添加
[动物释放]在dealoc方法中。

看起来您在某处调用NSString对象的count。您是否运行了调试器以查看崩溃的确切代码行?代码调用numberOfRowsInSection时似乎就是这样。

似乎在某个地方调用NSString对象的count。您是否运行了调试器以查看崩溃的确切代码行?代码调用numberOfRowsInSection时似乎就是这样。

检查.h文件中变量动物的数据类型。我认为它被声明为
NSString
。我这样说是因为如果你看错误信息的第一行,它会说

-[NSCFString count]:
因此,我认为当调用
numberOfRowsInSection
并返回
[动物计数]时,会导致崩溃


另外,如果你想让
动物
成为一个数组,你应该按照前面的回答分配它。

检查.h文件中变量动物的数据类型。我认为它被声明为
NSString
。我这样说是因为如果你看错误信息的第一行,它会说

-[NSCFString count]:
因此,我认为当调用
numberOfRowsInSection
并返回
[动物计数]时,会导致崩溃

另外,如果你想让
动物
成为一个数组,你应该按照前面的回答分配它