【发布时间】:2012-02-26 03:51:57
【问题描述】:
我正在关注 Aaron Hillegass 的 Cocoa 书中的一个练习 - 关于核心数据的章节。我有一个基于文档的应用程序,它将汽车数据保存到数组控制器中,然后它使用绑定......问题是我有一个日期选择器,我想尽快将它初始化为今天的日期car 被添加,所以我们继承了 NSArrayController 的 newObject 方法。但是,它总是显示 2/12/1982! newObject 方法中的 NSLog 没有被调用。我(或书)缺少什么?
CarArrayController.h
#import <Foundation/Foundation.h>
@interface CarArrayController : NSArrayController
@end
CarArrayController.m
#import "CarArrayController.h"
@implementation CarArrayController
- (id)init //this is not called!
{
self = [super init];
if (self) {
NSLog(@"in init");
}
return self;
}
-(id)newObject { // not called either
id newObj = [super newObject];
NSDate *now = [NSDate date];
[newObj setValue:now forKey:@"datePurchased"];
NSLog(@"yep");
return newObj;
}
@end
MyDocument.xib
有一个 NSArrayController 的实例,它的自定义类名设置为 CarArrayController。
PS:对于我在 MYDocument.xib 中的 Array Controller,“准备内容”按钮被选中,所以 automaticallyPreparesContent 应该设置为 YES...?
【问题讨论】:
-
您是否为阵列控制器设置了类名/实体名?
-
糟糕,已修复,谢谢。大问题还在。 :-(
-
@JoshCaswell,对于数组控制器,在 MyDocument.xib 中,我设置了模式:实体名称,实体名称:汽车(即我的 .xcdata... 文件中的实体名称)
标签: cocoa core-data nsarraycontroller