Xcode without Storyboard and ARC

i have downloaded new xcode-5 and just started using it.

We can create application directly including storyboard and ARC , it is not asking for option like earlier versions.

So, my question is how can we use xcode5 without ARC and storyboard. we have to manually remove storyboard file ? or is there any other option.

50899 次浏览

创建一个带有 Empty 应用程序的项目,并添加任何视图控制器(我在这里添加了 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) 在构建设置中将 自动参考计数设置为 没有

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

如果您已经用 故事板ARC创建了应用程序,那么

拆卸楼板的步骤

1) 从项目中删除 主线,故事板文件。

2) 使用 xib 为您的控制器添加新文件,如果在构建阶段没有在已编译的源代码中添加新文件,那么手动添加。

3) 普利斯特移除 Main storyboard file base name

4) 更改 appcommittee 完成启动选项文件并添加:

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) In build setting set 自动参考计数 to 没有.

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

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

  1. 使用空应用程序模板创建新项目。
  2. 添加一个新的 viewController (例如: LoginViewController)
  3. 按照下面指定的方式更改 AppDelegate.m文件中的 didFinishLaunchingWithOptions

更改为:

#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;
}

移除弧形: 进入构建设置-> Objective-C 自动参考计数-> NO

捷径: 我喜欢

在 xcode4中创建没有 Storyboard 和 ARC 的项目,然后在 xcode5中打开该项目。

当您创建一个新项目时,Xcode 4有“ Use Storyboard”复选框。可以获取旧的 Xcode 4应用程序模板(XML 文件)并将其转换为 Xcode 5。通过这种方式,您可以重新获得旧的模板,从而可以选择是否需要故事板。


我写了一个脚本,可以为你做所有的工作: https://github.com/jfahrenkrug/xcode4templates


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

enter image description here

然后——唉! ——你又可以重新做出你喜欢的选择了:

enter image description here

You will need a copy of the Xcode 4 .app bundle from http://developer.apple.com/ios to use this script.

创建新项目

! [创建新项目]

remove Main storyboard file base name in Info

//remove Main storyboard file base name in Info

在 appcommittee 中添加此代码

- (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;
}

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

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

我有个建议:

  1. 第一: 我用 XCode 4.6创建我的项目(因为这个版本最接近 XCode 5)。
    • 当然,对于 XCode 4.6,您可以选择使用或不使用 ARC,Storyboard。
  2. 第二个: 之后我将用 XCode5打开我的项目。 我认为 Xcode 5会理解这个项目是使用 nonARC 的,当然也没有 Storyboard。

我希望你的项目将工作