각기 다른 NIB 파일을 사용하는 ViewController로 두 개의 속성을 설정했습니다. (남성과 여성 모델은 동일하게 작동하지만 시각적으로 다른 설정입니다.) 전달한 NIB 이름과 ViewController를 기반으로 ViewController를 만드는 기능이 하나 있습니다.함수에 속성 전달 및 유지할 값 설정
ViewController 속성이 유지된다. 함수 내에 실제 속성 이름을 추가하고 설정하면 viewController가 설정되고 ViewController가 유지됩니다. 다음은 .m 파일에있는 것입니다 (도움을 얻는 데 필요한 것을 보여줌). 내가 시도한 두 개의 주석 행을 보관 해 두었습니다. 내 등록 정보 파일 .H에서
@synthesize femaleModelViewController;
@synthesize maleModelViewController;
- (void) loadModelViewControllerWithModelType:(NSString*) model ModelView:(ModelViewController *)modelViewController {
ModelViewController *viewController = [[ModelViewController alloc] initWithNibName:model bundle:nil];
// [self setFemaleModelViewController:viewController]; // I don't want to set the property here, I want to be able to pass it as an argument.
modelViewController = viewController;
// [modelViewController retain]; // I even tried to retain it do see if would but it doesn't.
[viewController release];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self loadModelViewControllerWithModelType:@"FemaleModel" ModelView:femaleModelViewController];
[self loadModelViewControllerWithModelType:@"MaleModel" ModelView:maleModelViewController];
}
은과 같이 설정은 다음과 같습니다
@property (nonatomic, retain) ModelViewController *femaleModelViewController;
@property (nonatomic, retain) ModelViewController *maleModelViewController;
감사합니다. 그래, 나는 그것을 주소와 값을 통해 전달하는 것을 완전히 잊었다. Objective-C와 C# 사이를왔다 갔다하면됩니다. 이 샘플은 과도한 것처럼 보이지만 간단하게 선언하는 것보다 메소드에서 더 많은 일이 계속 될 것입니다. 만약 내가 여기 그것을 유지해야 올바른지? –
어디에서 보관 하시겠습니까? 객체에 대한 유지 된 참조를 얻는 방법에는 두 가지가 있습니다 :'alloc' it 또는'retain '. 할당 한 경우에도 보유 할 필요가 없습니다. 또한 할 초기화가 더 많아도, 뷰 컨트롤러의 'initWithNibName : owner :'메소드에 속할 것이며, 클래스가 무엇이든 상관 없습니다. 수업을 너무 단단히 묶지 마십시오. 그렇지 않으면 전체 응용 프로그램이 깨지기 쉽습니다. – Alex