동일한 프로젝트를 업그레이드하는 경우 그 작업을 수행 할 수 없습니다.
애플이 애플 리케이션에 들어가기 위해 그들의 템플릿에서 사용하고있는 메커니즘이이 버전들 사이에서 바뀌었다.
3.x의 경우 Main Interface
은 프로젝트 설정에서 MainWindow.xib
으로 설정됩니다. 이 xib
에서 앱 대리인이 개체로로드됩니다.
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
이
가장 좋은가 3.x 및 4.x의 사이에 변경된 마지막 인자 인 것 다음 main.m
특별히이 줄 응용 프로그램 대리자를로드 4.x의에서
새 프로젝트를 만들고 템플릿 코드가 어떻게 연결되어 있는지 확인하십시오.
UPDATE
우선 프로젝트가 작동하는지 당신이 정말로 그것을 변경해야합니까? 나는 새로운 프로젝트 당신의 main.m
에
이동에서 템플릿 코드를 사용하고
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
에
int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
에서 구현을 변경하고있어
다음이 경우 NB 변경 AppDelegate
을 앱 대리인 클래스의 이름으로 변경하십시오.
프로그래밍 방식으로 UIWindow
을 만들려면 앱 대리인을 업데이트해야합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Instantiate your rootViewController
self.window.rootViewController = yourRootViewController;
[self.window makeKeyAndVisible];
return YES;
}
이
내가, 다른 자막이있을 수 있습니다 생각할 수있는 가장 확실한 차이가 있지만 나는 너무 오래 내가 기억할 수없는에서 3.x를 사용하지했습니다.
답변 해 주셔서 감사합니다. 너무 나쁜 "사자"는 3.x를 더 이상 실행할 수 없습니다. "템플릿 코드가 어떻게 연결되는지"가 의미하는 바를 조금 더 설명 할 수 있습니까? – Stanley
자세한 설명을 주셔서 감사합니다. 초기 단계에서 루트보기 컨트롤러를 사용하지 않는 것에 대해 꽤 후회합니다. 코코아 코딩 패턴에 익숙하지 않아서 뷰 컨트롤러의 중요성에 대해 알지 못했습니다.뷰를 뒤집을 수있는 유효한 뷰 컨트롤러가 필요합니다. 아마도 나는 컨트롤러없이 그것을 할 방법을 찾아야한다. – Stanley
iOS 4의 UIWindow에 'rootViewController'라는 경고가 하나 추가되었으므로 이전 버전을 지원하려면 이전에보기 컨트롤러를 추가해야합니다. '[self.window addSubView : yourViewController.view];' –