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
并返回[动物计数]时,会导致崩溃代码>
另外,如果你想让动物成为一个数组,你应该按照前面的回答分配它