为什么dateFormatter为null?

时间:2011-01-03 02:23:30

标签: xcode core-data

我已经看过关于这个主题的其他帖子,但这似乎有所不同。

我正在构建一个基于CoreDataBooks示例的iPhone应用程序。在我的PatientDetailViewController中,日期没有出现在相应的行中 - 当显然有数据时显示为null。我在标题,xib和其他地方搜索过,找到样本有效的原因而我的样本没有 - 而且我没有取得任何进展。

请注意,dateOfBirth是模型中Patient的一个属性。

在界面中我有

    @class Patient;
    @class EditingViewController;

    #include <UIKit/UIKit.h>

    @interface PatientDetailViewController : UITableViewController {
        Patient *patient;
        NSDateFormatter *dateFormatter;
    }

    @property (nonatomic, retain) Patient *patient;
    @property (nonatomic, retain) NSDateFormatter *dateFormatter;

@end

这是我的tableView中的代码:cellForRowAtIndexPath:

    ...
    cell.textLabel.text = @"DOB";
    cell.detailTextLabel.text = [self.dateFormatter stringFromDate:patient.dateOfBirth];

    NSLog(@"the formatted date is %@", [self.dateFormatter stringFromDate:patient.dateOfBirth]);

   NSDate *date = [patient valueForKey:@"dateOfBirth"];
   NSLog(@"the date is %@", date);
    ...

控制台上的输出如下:

2011-01-02 18:02:27.484 App [3633:207]格式化日期为(null)

2011-01-02 18:02:27.487 App [3633:207]日期是1993-01-02 17:41:46 -0800

我将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

你把它分配到某个地方了吗?

dateFormatter = [[NSDateFormatter alloc] init];

您可以将其放在viewDidLoad或方便的地方。只需确保在实际使用dateFormatter之前调用此行。