저는 Xcode의 타겟 컨셉에 대해 매우 새롭습니다. 동일한 프로젝트에서 두 개의 대상을 만드는 방법을 배우려면이 tutorial을 따라야합니다. 방금 목표 A가 지정된 앱 대리인으로 AppDelegateA.swift
을 사용하는 방법을 알고 싶습니다. 대상 B는 지정된 앱 대리인으로 AppDelegateB.swift
을 사용합니다. 이 자습서에서는 동일한 AppDelegate에서 두 개의 응용 프로그램을 만드는 방법을 실제로 가르쳐주기 때문에. 하지만 두 가지 (거의) 완전히 다른 앱을 만들고, 많은 리소스와 라이브러리를 공유합니다.동일한 프로젝트 내 다른 대상에 대해 다른 AppDelegate를 설정하는 방법은 무엇입니까?
우리가 주제를 다룰 때 대상 A에 Main
이라는 스토리 보드를 사용할 수 있고 대상 B에도 Main
이라는 스토리 보드를 사용할 수 있지만 실제로는 다른 스토리 보드입니다 (단, 동일한 프로젝트 내에 함께 넣음).)? 프로젝트에
main.m
당신이 할 수있는 일
int main(int argc, char *argv[])
{
@autoreleasepool {
NSString *appDelegateName;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
appDelegateName = NSStringFromClass([AppDelegateIPhone class]);
} else {
appDelegateName = NSStringFromClass([AppDelegateIPad class]);
}
return UIApplicationMain(argc, argv, nil, appDelegateName);
}
}
좋아하지만 IMO 당신이하지 말아야 :
궁금 해서요, 왜 이걸 원하니? – Alexander
@AlexanderMomchliov 왜냐하면 그들은 코드가 분리되어 있기를 바랄 것이기 때문입니다 (논리에서). 제 견해로, AppDelegate는 응용 프로그램의 "진입 점"이기 때문에 실제로는 매우 다른 응용 프로그램 (그러나 많은 라이브러리와 자원을 공유하는 대상)을 구분해야합니다. 이는 AppDelegate를 포함하여 각 대상을 자체 폴더에 구성 할 수 있으므로 다른 프로젝트로 신속하게 복사 할 수 있습니다. –
두 가지 다른 응용 프로그램이있는 경우 두 개의 다른 프로젝트 여야합니다. 그들의 공유 코드는 처음 두 개에서 참조되는 세 번째 라이브러리 프로젝트로 추출되어야합니다. – Alexander