[ios] Storyboard 및 ARC가없는 Xcode

새로운 xcode-5를 다운로드하고 사용하기 시작했습니다.

스토리 보드와 ARC를 포함하여 직접 응용 프로그램을 만들 수 있지만 이전 버전과 같은 옵션을 요구하지 않습니다.

제 질문은 ARC와 스토리 보드없이 어떻게 xcode5를 사용할 수 있는가입니다. 스토리 보드 파일을 수동으로 제거해야합니까? 또는 다른 옵션이 있습니까?



답변

빈 애플리케이션으로 프로젝트를 만들고 viewcontroller를 추가합니다 (여기에 TestViewController를 추가했습니다).

   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
 {
   self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
   // Override point for customization after application launch.
   TestViewController *test = [[TestViewController alloc]     initWithNibName:@"TestViewController" bundle:nil];
   UINavigationController *nav = [[UINavigationController alloc]  initWithRootViewController:test];
   self.window.rootViewController = nav;
   [self.window makeKeyAndVisible];
   return YES;
 }

아크 제거 단계

1) 빌드 설정에서 Automatic Reference CountingNO로 설정 합니다.

////////////////////////////////////////////////// /////////////////////////종료//////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////

스토리 보드ARC 로 이미 만든 응용 프로그램이있는 경우

스토리 보드 제거 단계

1) 프로젝트에서 Main.storyboard 파일을 제거 합니다.

2) 컨트롤러 용 xib로 새 파일을 추가합니다. 빌드 단계에서 컴파일 된 소스에 추가되지 않은 경우 수동으로 추가합니다.

3) plist 에서 메인 스토리 보드 파일베이스 이름 을 제거 합니다 .

4) appdelegate didFinishLaunchingWithOptions 파일을 변경 하고 다음을 추가하십시오.

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;

[self.window makeKeyAndVisible];

처럼 :

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;

     // Override point for customization after application launch.

     TestViewController *test = [[TestViewController alloc]     initWithNibName:@"TestViewController" bundle:nil];
     UINavigationController *nav = [[UINavigationController alloc]  initWithRootViewController:test];
     self.window.rootViewController = nav;
     [self.window makeKeyAndVisible];

     return YES;
}


이제 위의 예에서는 다음과 같이 메모리 관리를 수동으로 관리해야합니다.

 self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

 [test release]; 

아크 제거 단계

1) 빌드 설정에서 Automatic Reference CountingNO로 설정 합니다.


답변

스토리 보드 파일을 삭제하는 대신 빈 응용 프로그램 템플릿을 사용하여 새 프로젝트를 만들 수 있습니다. 따라서 스토리 보드 파일 생성을 피할 수 있습니다.

스토리 보드를 생략하려면 다음 단계를 사용하십시오.
여기에 이미지 설명 입력

  1. 빈 응용 프로그램 템플릿을 사용하여 새 프로젝트를 만듭니다.
  2. (예 : 새의 ViewController 추가 LoginViewController)
  3. 아래에 지정된대로 didFinishLaunchingWithOptionsin AppDelegate.m파일을 변경하십시오 .

로 변경:

#import "LoginViewController.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];

    LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc]  initWithRootViewController:loginVC];

    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];

    return YES;
}

ARC 제거 :
빌드 설정-> Objective-C 자동 참조 계산-> 아니오로 이동합니다.


답변

새 프로젝트 생성

! [새 프로젝트 생성]

정보에서 메인 스토리 보드 파일 기본 이름 제거

// Info에서 기본 스토리 보드 파일 기본 이름 제거

Appdelegate에이 코드 추가

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];

    LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc]  initWithRootViewController:loginVC];

    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];

    return YES;
}

그런 다음 스토리 보드를 자동으로 제거합니다.

시도하십시오 … 성공적으로 실행되었습니다. 감사


답변

ShortCut : 선호

xcode4에서 Storyboard 및 ARC없이 프로젝트를 만든 다음 xcode5에서 해당 프로젝트를 엽니 다.


답변

Xcode 4에는 새 프로젝트를 만들 때 “스토리 보드 사용”확인란이있었습니다. 이전 Xcode 4 애플리케이션 템플릿 (XML 파일)을 가져 와서 Xcode 5로 변환 할 수 있습니다. 이렇게하면 스토리 보드를 원하는지 여부를 선택할 수있는 이전 템플릿을 다시 가져올 수 있습니다.


나는 당신을 위해 일하는 모든 것을 수행하는 스크립트를 작성했습니다 : https://github.com/jfahrenkrug/Xcode4templates


스크립트를 실행하면 “새 프로젝트”화면에 “Xcode 4″섹션이 있습니다.

여기에 이미지 설명 입력

그리고-아아! -사랑하는 선택을 되 찾습니다.

여기에 이미지 설명 입력

이 스크립트를 사용하려면 http://developer.apple.com/ios 에서 Xcode 4 .app 번들의 사본이 필요합니다 .


답변

팁이 있습니다.

  1. 첫 번째 : XCode 4.6으로 프로젝트를 만듭니다 (이 버전이 XCode 5에 가장 가깝기 때문에).
    • 물론 XCode 4.6에서는 ARC, Storyboard 사용 여부를 선택할 수 있습니다.
  2. 두 번째 : 그 후 XCode 5로 프로젝트를 열 것입니다. => Xcode 5는 프로젝트가 nonARC를 사용하고, 물론 Storyboard가 없다는 것을 이해할 것이라고 생각합니다.

당신의 프로젝트가 효과가 있기를 바랍니다! :디


답변