我将代码放入哪个成员?

时间:2012-02-27 23:53:15

标签: iphone ios xcode4

我正在编写我的第一个SIMPLE数据库应用程序,基本上是一个脱机数据库,选择一个记录列表,然后单击其中一个以显示详细信息。

我看了一本旧书的例子(前xcode 4),因为它有一个非常类似于我需要做的例子。所以这个例子设置了我在一个名为DBAccess.m的成员中访问数据库所需的所有方法。我可以从调试器告诉代码访问main.m然后MasterViewController.m它执行awakeFromNib和didViewLoad这很棒...但是我在哪里放置第一个调用我需要的例程的语句在DBAccess.m文件中?本书假设您知道在哪里放置代码并将其作为用户的练习...呃。

我找不到关于如何将代码插入执行周期的任何明确声明。

是否有默认的执行周期?

1 个答案:

答案 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方法中消除任何延迟加载。

但这完全取决于人的偏好。