私はAppdelegateでいくつかのクラスを初期化しましたが、このクラスインスタンスのAppdelegateフォームを別のクラスで取得すると、 "新鮮な"状態になります。別のクラスへの参照を正しく取得するにはどうすればよいですか?
インタフェース:
@property (nonatomic, retain) DataController *dataController;
実装:私はAppDelegateで、以下のいる
@synthesize dataController;
- (id)init {
if (self = [super init]) {
DataController *controller = [[DataController alloc] init];
self.dataController = controller;
[controller release];
NSLog(@"items: %d",[self.dataController numberOfItems]);
}
return self;
}
をこの時点でDataControlelrクラスの負荷では、フォームのデータベースオブジェクト。ログ出力は「items:10」と表示されます。
私はDataControllerを使用する必要があるTableViewControllerを持っています。
TableViewControllerヘッダー:
@interface TableViewController : UITableViewController {
DataController *dataController;
}
@property (retain) DataController *dataController;
@end
実装:ここ
-(id)init{
if (self =[super init]) {
DataController *dc =[(AppDelegate *)[[UIApplication sharedApplication] delegate] dataController];
[dc retain];
dataController = dc;
NSLog(@"items: %d",[self.dataController numberOfItems]);
}
return self;
}
それは常にDataControllerが0のアイテムを持っていることを言います。 「新鮮な」状態。そのクラスを割り当てることたて何とかDataControllerを初期化するための基準を作成するように思え0
:10件の
アイテム:
ログ出力は常に
アイテムですか!
別のクラスを正しく参照するにはどうすればよいですか?
ありがとうございました。
申し訳ありませんが間違って貼り付けられました。それはself.datacontroller = dcです。 違いはありません。 – Rod