【发布时间】:2011-07-05 09:24:56
【问题描述】:
全部,
在 Apple 的示例代码“DateCell”中
http://developer.apple.com/library/ios/#samplecode/DateCell/Introduction/Intro.html
ivar "pickerView" 在 MyTableViewController.h 中声明如下:
@interface MyTableViewController : UITableViewController
{
@private
UIDatePicker *pickerView;
UIBarButtonItem *doneButton; // this button appears only when the date picker is open
NSArray *dataArray;
NSDateFormatter *dateFormatter;
}
@property (nonatomic, retain) IBOutlet UIDatePicker *pickerView;
...
在类文件MyTableViewController.m中合成如下:
@implementation MyTableViewController
@synthesize pickerView, doneButton, dataArray, dateFormatter;
...
当这个应用程序运行时,我可以将NSLog(@"%@",pickerView) 插入到 ViewDidLoad 中,然后看到,果然,ivar pickerView 是真实的并且有一个值。但是,这个类 alloc/init pickerView 无处可寻。这就是问题的根源:如果没有明确完成,如何完成?
好吧,我天真地把这些东西复制到我的代码中到我的 RootViewController.h 和 .m 文件中,以为我可以做同样的事情,但是 pickerView 顽固地保持未初始化(并且我的 NSLog 调用返回“(nil)”作为它的值)不不管我尝试什么,都没有明确分配/初始化它。当然 RootViewController 正在被实例化,或者 RootView 不会出现,对吧?那么我的 pickerView 不应该像 Apple 一样顺其自然吗?
那么...我必须手动分配/初始化 pickerView 实例变量吗?如果是这样,苹果在哪里做呢?或者他们是怎么做到的?
我想我在这里遗漏了一些非常基本的东西,但我不知道它是什么。我在 Interface Builder 或 XCode 中看不到任何与我的和他们的不同的东西,但我现在有狭隘的视野,无法再清楚地看到任何东西。
谢谢,
比尔
【问题讨论】:
标签: objective-c ios instance-variables