我已下载新的Xcode-5并开始使用。
我们可以直接创建包含故事板和ARC的应用程序,无需像早期版本那样询问选项。
因此,我的问题是如何在没有ARC和故事板的情况下使用Xcode5。我们需要手动删除故事板文件吗?还是有其他选项?
我已下载新的Xcode-5并开始使用。
我们可以直接创建包含故事板和ARC的应用程序,无需像早期版本那样询问选项。
因此,我的问题是如何在没有ARC和故事板的情况下使用Xcode5。我们需要手动删除故事板文件吗?还是有其他选项?
创建一个空应用程序项目并添加任何视图控制器(这里我添加了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) 在构建设置中将自动引用计数设置为NO。
///////////////////////////////////////////////////////////////////////////END///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果您已经使用故事板和ARC创建了应用程序,则
移除故事板的步骤
1) 从项目中删除Main.storyboard文件。
2) 为您的控制器添加新的 xib 文件,如果未在构建阶段的已编译源代码中添加,则手动添加。
3) 从plist中删除Main storyboard file base name。
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) 在构建设置中将 自动引用计数(ARC) 设置为 NO。
不要删除故事板文件,相反使用“Empty Application”模板创建一个新项目。这样您就可以避免创建故事板文件。
使用以下步骤省略故事板:
LoginViewController
)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;
}
移除ARC: 前往构建设置 -> Objective-C自动引用计数 -> NO
创建新项目
![创建新项目]
// 在 appdelegate 中添加以下代码
Add This Code In 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;
}
然后自动删除您的故事板。
请尝试这个... 成功执行。谢谢
快捷方式:我更喜欢
在xcode4中创建不带Storyboard和ARC的项目,然后在xcode5中打开该项目。
我有一个小建议:
希望你的项目能够成功!:D
-fobjc-arc
编译器标志。 - user529758