通过重命名类来查看控制器崩溃

时间:2014-02-19 09:30:57

标签: ios xcode uiviewcontroller xib

有一个带有表视图的XIB的UIViewController子类,我决定将其转换为没有XIB的UITableViewController子类。

所以在。h领导者中我改变了:

@interface AViewController : UIViewController <UITableViewDataSource, UITableViewDelegate,
                                               UISearchBarDelegate, UISearchDisplayDelegate>

@property (nonatomic, weak) IBOutlet UITableView* tableView;

为:

@interface AViewController : UITableViewController <UISearchDisplayDelegate, UISearchBarDelegate>

.m模块文件中,我的init更改了一行:

if (self = [super initWithNibName:@"AView" bundle:nil])

为:

if (self = [super initWithStyle:UITableViewStylePlain])

这应该是你所期望的。但是当我运行应用程序时它会崩溃。 init被调用并返回,但很快就崩溃了。不会调用viewDidLoad等。

我尝试了很多东西:删除XIB,清理构建文件夹......,从设备中删除应用程序,重新启动Xcode,重新启动Mac,但没有任何效果。

在此模块中将AViewController重命名为AViewController_的工作是什么,然后在我的应用中使用它。

我的猜测是XIB有一些内存,而且XIB仍在实例化;但这是一个奇怪的猜测。

知道这可能是什么以及如何解决它?

1 个答案:

答案 0 :(得分:0)

我将所有其他XIB更新为Xcode 5,问题就消失了。