应用程序在ios 5.1中运行良好,但在ios 6中崩溃

应用程序在ios 5.1中运行良好,但在ios 6中崩溃,ios,xcode,crash,ios6,xcode4.5,Ios,Xcode,Crash,Ios6,Xcode4.5,我的应用程序在ios 5.1和xcode 4.4.1中运行良好 现在,当我更新ro ios 6和xcode 4.5时,它会在更改视图时崩溃。 我使用故事板制作UI。 在第一个视图中,我得到TableViewController,当我选择一个单元格时,它应该转到另一个包含3个按钮、1个滑块、1个UITableView和2个标签的视图。这些东西通过IBOutlet连接到控制器。 在第二种观点中,我认为这种方法会导致一次又一次的崩溃 -(void)viewWillAppear:(BOOL)animat

我的应用程序在ios 5.1和xcode 4.4.1中运行良好 现在,当我更新ro ios 6和xcode 4.5时,它会在更改视图时崩溃。 我使用故事板制作UI。 在第一个视图中,我得到TableViewController,当我选择一个单元格时,它应该转到另一个包含3个按钮、1个滑块、1个UITableView和2个标签的视图。这些东西通过IBOutlet连接到控制器。 在第二种观点中,我认为这种方法会导致一次又一次的崩溃

-(void)viewWillAppear:(BOOL)animated
这一点上的代码是什么

0x347735aa:  ldr    r4, [r0]
我该怎么办? 编辑: 这是我的堆栈跟踪

0 objc_msgSend
1 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:]:
2 -[UITableView _userSelectRowAtPendingSelectionIndexPath:]:
3 __NSFireDelayedPerform:
4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__:
5 __CFRunLoopDoTimer:
6 __CFRunLoopRun:
7 CFRunLoopRunSpecific:
8 CFRunLoopRunInMode:
9 GSEventRunModal:
10 UIApplicationMain:
11 main at main.m:14:

我在跟踪后发现了问题,并反复阅读我的代码。问题是我使用了这种方法

- (void)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
知道选择了哪个细胞。但我认为ios 6在这种方法上有问题。所以当我把它改成

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
一切都很顺利。
我仍然不知道为什么会发生这种情况。

tableView:willSelectRowAtIndexPath:
只是通知代理将要选择表中的一行,如果不希望选择某一行,您可以返回
nil
,如果您认为应用程序需要,则返回不同的indexath


由于该方法从未打算触发对详细视图控制器的深入研究,我认为您的旧调用在iOS 6上崩溃是公平的。您很幸运,它以前工作正常。

您在
willSelectRowAtIndexPath
方法语法中有错误。 应该是

-(NSIndexPath*)表视图:将选择RowatineXpath:


-(void)tableView:willSelectRowAtIndexPath:

是否将有效值加载到r0?说真的,xcode 4.5不是还在保密协议下吗?@ott周三发布了iOS6,保密协议不再有效。好吧,那你没有“正常”的堆栈跟踪吗?不仅仅是最后一行。如果您将崩溃报告符号化,这会有所帮助。@ott--我编辑并添加堆栈跟踪