이번에 릴리즈된 iOS 5 Beta 7에서 테스트 어플을 하나 만들어보려고 오랜만에 XCode를 열었습니다.

그런데 우잉???


Windows-Based Application이 없어졌네요.
그래서 할 수 없이 Empty Application을 선택했습니다.


그리고 새로운 Use Automatic Reference Counting이라는 항목이 생겼군요. 레퍼런스 카운팅을 자동으로 해주는 것 같은데
우선 테스트 어플이 급하기에 체크 해제하고 생성합니다.


TestApp이라는 이름으로 어플을 생성했습니다.
Empty Application이라더니 기존에 있던 MainWindow.xib 파일이 보이지 않습니다.
그럴때는 할 수 없이 수동으로 연결을 해야 하는 군요.


새로운 UIViewController를 하나 만들었습니다.
xib파일을 포함해서 만들었는데요. 이제 코드로 연결을 해줘야 합니다.

Empty Application 으로 만들면 'AppDelegate.h, AppDelegate.m'파일이 생성됩니다.

// AppDelegate.h
//

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, retain) MainViewController *mainView;

@end
//]]>



//AppDelegate.m
#import "AppDelegate.h"
#import "MainViewController.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize mainView;

- (void)dealloc
{
    [mainView release];
    [_window release];
    [super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    
    mainView = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
    
    if ( mainView != nil ) 
    {
        [self.window addSubview:mainView.view];
    }
    
    [self.window makeKeyAndVisible];
    return YES;
}

// 이하 코드 ...




  이렇게 연결을 했더니 전과 같이 화면이 밀리는 경향이 있습니다.
그래서 MainViewController.m 파일을 수정했습니다.
// MainViewController.m  
#import "MainViewController.h"

@implementation MainViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        [self.view setFrame:[[UIScreen mainScreen] applicationFrame]];
    }
    return self;
}

// 이하 코드 ...
 
posted by 뚱2