我正在编写我的第一个SIMPLE数据库应用程序,基本上是一个脱机数据库,选择一个记录列表,然后单击其中一个以显示详细信息。
我看了一本旧书的例子(前xcode 4),因为它有一个非常类似于我需要做的例子。所以这个例子设置了我在一个名为DBAccess.m的成员中访问数据库所需的所有方法。我可以从调试器告诉代码访问main.m然后MasterViewController.m它执行awakeFromNib和didViewLoad这很棒...但是我在哪里放置第一个调用我需要的例程的语句在DBAccess.m文件中?本书假设您知道在哪里放置代码并将其作为用户的练习...呃。
我找不到关于如何将代码插入执行周期的任何明确声明。
是否有默认的执行周期?
答案 0 :(得分:0)
放置代码的两个经典之处是视图控制器的init和loadView方法。即
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Put DB code here
}
return self;
}
或
- (void)loadView
{
[super loadView];
// Put DB code here
}
选择取决于您对数据的处理方式。
如果数据将在NIB文件的UI元素中显示,那么您必须要小心,因为init
方法运行时这些元素可能不存在。因此,将数据分配给init
中的UI元素可能会导致程序看起来正确并编译,但不会在显示屏上显示任何内容(在那里,完成了!)因此,最好延迟DB数据直到loadView
开火。
如果屏幕上不需要立即显示数据(或出于其他非显示原因需要),则可以使用init
方法加载数据。但需要注意的是,您现在正在为可能永远不会显示的内容消耗内存 - 从而在loadView
方法中消除任何延迟加载。
但这完全取决于人的偏好。