일부 클래스가 Appdelegate에서 초기화되었지만이 클래스 인스턴스가 다른 클래스의 Appdelegate 양식에서 "신선한"상태가되면다른 클래스에 대한 참조를 제대로 얻으려면 어떻게해야합니까?
나는 AppDelegate에에 다음과 같은 한 :
는인터페이스 :
는@property (nonatomic, retain) DataController *dataController;
구현 :이 시점 DataControlelr 클래스로드에서
@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;
}
양식 데이터베이스 객체. 로그 출력은 "항목 : 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 항목이 있다고 말한다. "신선한"상태. 10
항목 : 0 그것은 그 클래스를 할당하는 것 같아
는 참조 갓 어떻게 든 DataController을 초기화하기 위해 만들어
로그 출력은 항상
항목입니까?
어떻게하면 다른 클래스를 제대로 참조 할 수 있습니까?
감사합니다.
죄송합니다. 잘못 붙여 넣었습니다. 그것은 self.datacontroller = dc입니다. 아무런 차이가 없습니다. – Rod