Xcode没有Storyboard和ARC

时间:2013-06-21 11:29:22

标签: ios iphone xcode uistoryboard

我已经下载了新的xcode-5并且刚刚开始使用它。

我们可以直接创建应用程序,包括storyboard和ARC,它不要求像早期版本那样的选项。

所以,我的问题是如何在没有ARC和故事板的情况下使用xcode5。我们必须手动删除storyboard文件?还是有其他选择。

6 个答案:

答案 0 :(得分:150)

使用Empty应用程序创建项目并添加任何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;
 }

移除ARC的步骤

1)在构建设置中将自动引用计数设置为

<强> //////////////////////////////////////////// ///////////////////////////////结束////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////////////////

如果您已经使用故事板 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]; 

移除ARC的步骤

1)在构建设置中将自动引用计数设置为

答案 1 :(得分:44)

您可以使用空应用程序模板创建新项目,而不是删除情节提要文件。这样就可以避免故事板文件的创建。

使用以下步骤省略故事板: enter image description here

  1. 使用空应用程序模板创建一个新项目。
  2. 添加新的viewController(示例:LoginViewController
  3. 按照以下规定更改didFinishLaunchingWithOptions文件中的AppDelegate.m
  4. 更改为:

    #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: 转到构建设置 - &gt; Objective-C自动参考计数 - &gt; NO

答案 2 :(得分:11)

创建新项目

![创建新项目]

remove Main storyboard file base name in 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;
}

然后自动删除你的故事板。

请试试这个...... 成功执行。谢谢

答案 3 :(得分:5)

ShortCut:我更喜欢

在xcode 4中创建没有Storyboard和ARC的项目,然后在xcode 5中打开该项目。

答案 4 :(得分:3)

在创建新项目时,Xcode 4具有“使用故事板”复选框。可以获取旧的Xcode 4应用程序模板(XML文件)并将它们转换为Xcode 5.这样,您可以返回旧模板,让您选择是否需要故事板。


我写了一个脚本,可以帮助您完成所有工作: https://github.com/jfahrenkrug/Xcode4templates


运行脚本后,您将在“新建项目”屏幕中看到“Xcode 4”部分:

enter image description here

然后 - 唉! - 你得到了你心爱的选择:

enter image description here

您需要http://developer.apple.com/ios的Xcode 4 .app包的副本才能使用此脚本。

答案 5 :(得分:0)

我有一个提示:

  1. 第一个:我通过XCode 4.6创建我的项目(因为这个版本离XCode 5最近)。
    • 当然,使用XCode 4.6,您可以选择是否使用ARC,Storyboard。
  2. 第二个:之后我将用XCode 5打开我的项目。 =&GT;我认为Xcode 5会理解该项目是使用nonARC,当然,没有Storyboard。
  3. 我希望你的项目能够奏效! :d