私は、Aaron HillegassのCocoaの本のコアデータに関する章の練習に従っています。私は、アレイコントローラに車のデータを保存し、バインディングを使用するドキュメントベースのアプリケーションを持っています...問題は、日付ピッカーがあり、新しい日付になるとすぐに今日の日付に初期化したいのですcarが追加されたので、NSArrayControllerのnewObjectメソッドをサブクラス化しています。しかし、それは常に2/12/1982を示しています! newObjectメソッド内のNSLogは呼び出されません。私(または本)は何ですか?なぜnewObjectメソッドが呼び出されないのですか?
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のmyアレイコントローラの場合、「コンテンツの準備」ボタンがチェックされているので、automaticallyPreparesContent
はYES
...に設定する必要があります。
アレイコントローラのクラス名/エンティティ名を設定しましたか? –
ありがとう、ありがとう。大きな問題はまだそこにあります。 :-( – janeh
@ JoshCaswell、MyDocument.xibのアレイコントローラーで、モードを設定しました:エンティティ名、エンティティ名:Car(my .xcdata ...ファイル内のエンティティの名前) – janeh