我已经下载了新的xcode-5并且刚刚开始使用它。
我们可以直接创建应用程序,包括storyboard和ARC,它不要求像早期版本那样的选项。
所以,我的问题是如何在没有ARC和故事板的情况下使用xcode5。我们必须手动删除storyboard文件?还是有其他选择。
使用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;
}
消除电弧的步骤
1)在构建设置中将自动参考计数设置为NO。
////////////////////////////////////////////////// /////////////////////////结束//////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////
如果您已经使用故事板和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)在构建设置中将自动参考计数设置为NO。
您可以使用空应用程序模板创建新项目,而不是删除情节提要文件。这样就可以避免故事板文件的创建。
使用以下步骤省略故事板:
LoginViewController
)didFinishLaunchingWithOptions
文件中的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:我更喜欢
在xcode 4中创建没有Storyboard和ARC的项目,然后在xcode 5中打开该项目。
创建新项目时,Xcode 4具有“使用故事板”复选框。可以获取旧的Xcode 4应用程序模板(XML文件)并将它们转换为Xcode 5.这样,您可以返回旧模板,让您选择是否需要故事板。
我写了一个脚本,它可以帮助你:https://github.com/jfahrenkrug/Xcode4templates
运行脚本后,“新建项目”屏幕中将显示“Xcode 4”部分:
然后 - 唉! - 你得到了你心爱的选择:
您将需要http://developer.apple.com/ios的Xcode 4 .app包的副本才能使用此脚本。
我有一个提示:
我希望你的项目能够奏效! :d