在此先感谢,在我的应用程序中,我正在尝试使用 tableviewdidselectrowatindexpath 方法显示第二个视图控制器。下面是我的代码,如果我不使用自动释放它可以正常工作,但是如果我使用自动释放它会给出错误,我尝试使用NSZombie
Enable 来查找Error,它给出了一些关于这个 Autorelease 的错误。我在同一项目的其他类文件中使用的方法相同,但那时它工作正常。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
if ([[UIScreen mainScreen] bounds].size.height == 568)
{
CreateMessageViewController *cvc = [[[CreateMessageViewController alloc]initWithNibName:@"CreateMessageViewController"bundle:nil]autorelease];
cvc.Username = [arrayUserName objectAtIndex:indexPath.row];
cvc.UserId = [arrayUserID objectAtIndex:indexPath.row];
cvc.isGroup = @"no";
[self.navigationController pushViewController:cvc animated:YES];
}
else
{
CreateMessageViewController *cvc = [[[CreateMessageViewController alloc]initWithNibName:@"CreateMessageViewControlleriPhone4"bundle:nil]autorelease];
cvc.Username = [arrayUserName objectAtIndex:indexPath.row];
cvc.UserId = [arrayUserID objectAtIndex:indexPath.row];
cvc.isGroup = @"no";
[self.navigationController pushViewController:cvc animated:YES];
}
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
CreateMessageViewController *cvc = [[[CreateMessageViewController alloc]initWithNibName:@"CreateMessageViewControlleriPad"bundle:nil]autorelease];
cvc.Username = [arrayUserName objectAtIndex:indexPath.row];
cvc.UserId = [arrayUserID objectAtIndex:indexPath.row];
cvc.isGroup = @"no";
[self.navigationController pushViewController:cvc animated:YES];
}
}
我在其他类文件中使用的相同方法,但不会给出任何错误或崩溃。代码如下。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (StudioManger)
{
NSLog(@"You can edit Schedule");
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
if ([[UIScreen mainScreen] bounds].size.height == 568)
{
EditScheduleViewController *esvc = [[[EditScheduleViewController alloc]initWithNibName:@"EditScheduleViewController" bundle:Nil]autorelease];
esvc.StudioID = myStudioID ;
esvc.Fromtime = [arrayfromtime objectAtIndex:indexPath.row];
esvc.Totime = [arraytotime objectAtIndex:indexPath.row];
esvc.Date = [arraydate objectAtIndex:indexPath.row];
esvc.Grouptype = [arraygroupname objectAtIndex:indexPath.row];
esvc.DanceType = [arraydancetype objectAtIndex:indexPath.row];
esvc.Day = [arrayDay objectAtIndex:indexPath.row];
esvc.scheduleid = [arrayScheduleID objectAtIndex:indexPath.row];
esvc.StudioName = StudioName ;
[self.navigationController pushViewController:esvc animated:YES];
}
else
{
EditScheduleViewController *esvc = [[[EditScheduleViewController alloc]initWithNibName:@"EditScheduleViewControlleriPhone4" bundle:Nil]autorelease];
esvc.StudioID = myStudioID ;
esvc.Fromtime = [arrayfromtime objectAtIndex:indexPath.row];
esvc.Totime = [arraytotime objectAtIndex:indexPath.row];
esvc.Date = [arraydate objectAtIndex:indexPath.row];
esvc.Grouptype = [arraygroupname objectAtIndex:indexPath.row];
esvc.DanceType = [arraydancetype objectAtIndex:indexPath.row];
esvc.Day = [arrayDay objectAtIndex:indexPath.row];
esvc.scheduleid = [arrayScheduleID objectAtIndex:indexPath.row];
esvc.StudioName = StudioName ;
[self.navigationController pushViewController:esvc animated:YES];
}
}
else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
EditScheduleViewController *esvc = [[[EditScheduleViewController alloc]initWithNibName:@"EditScheduleViewControlleriPad" bundle:Nil]autorelease];
esvc.StudioID = myStudioID ;
esvc.Fromtime = [arrayfromtime objectAtIndex:indexPath.row];
esvc.Totime = [arraytotime objectAtIndex:indexPath.row];
esvc.Date = [arraydate objectAtIndex:indexPath.row];
esvc.Grouptype = [arraygroupname objectAtIndex:indexPath.row];
esvc.DanceType = [arraydancetype objectAtIndex:indexPath.row];
esvc.Day = [arrayDay objectAtIndex:indexPath.row];
esvc.scheduleid = [arrayScheduleID objectAtIndex:indexPath.row];
esvc.StudioName = StudioName ;
[self.navigationController pushViewController:esvc animated:YES];
}
}
else
{
}
}
请有人帮助我,注意,我没有使用 ARC 。并在 Xcode 5 中工作
我通过 NSZombie 得到的错误如下,
2013-10-28 17:12:34.287 Dance Program[3855:a0b] * -[AppDelegate performSelector:withObject:withObject:]: 消息发送到已释放实例 0xa077590