我一直在研究自定义UITableViewCells,并遇到了来自Apple的TouchCells示例:TouchCells Example Project
我不知道应用程序如何加载。如果查看AppDelegate.m
,则会看到以下内容:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
// create window and set up table view controller
detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
detailViewController.loadView;
[window addSubview:navController.view];
[window makeKeyAndVisible];
}
这似乎会加载
DetailViewController
。但是,在加载应用程序时,会在标题
UITableViewController
中加载类型为MyTableViewController
的TouchCells
。我看着MainWindow.xib
,但没有MyTableViewController
(据我所知)。当我把断点放进去
- (void)viewDidLoad
{
// load our data from a plist file inside our app bundle
NSString *path = [[NSBundle mainBundle] pathForResource:@"tableData" ofType:@"plist"];
self.dataArray = [NSMutableArray arrayWithContentsOfFile:path];
}
MyTableViewController.m
的断点在applicationDidFinishLaunching
中的AppDelegate.m
中的断点之前命中。我想这意味着MyTableViewController
首先被加载,但是我一生都无法弄清楚该调用在代码中的位置。有人可以帮我弄清楚
TouchCells
示例的逻辑流程吗?谢谢
回答
所选答案中包含正确的信息,但是@Caleb提供的答案显示了如何获取该信息。
感谢大家
最佳答案
调用applicationDidFinishLaunching时,将已设置接口构建器连接。因此,任何需要初始化的类都将在applicationDidFinishLaunching之前被调用。如果您想知道正在调用什么方法,则在XCode 4中的Debug Navigator中击中断点后,将遵循堆栈跟踪。
更新:
在MainWindow.xib内部,展开导航控制器,您将找到MyTableViewController。
关于objective-c - Apple Code示例:TouchCells,它如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6442643/