'Objective-C'에 해당되는 글 2건

  1. 2010.07.08 applicationDidFinishLaunching:
  2. 2010.07.07 Objective-C에서의 객체 인스턴스 해제
AppleApp/Cocoa Touch2010. 7. 8. 12:59
iPhone SDK4로 넘어오면서 코드가 조금 바뀐 것이 있다. 바로 ProjectNameAppDelegate.m에서 활용도가 높았던 applicationDidFinishLaunching이 그 주인공이다. 어떻게 바뀌었는지 살펴보자.
구 버전의 SDK같은 경우는 새로 프로젝트를 생성하게 되면 다음과 같은 메소드를 제공할 것이다.
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//Override point for customization after app launch
[window makeKeyAndVisible];
}
다른 메소드(viewDidLoad, viewWillAppear)들과 비교했을 때 일관성 있는 작명 방식이다.

하지만 iPhone SDK 4에서는 다음과 같은 메소드 형태를 제공한다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Override point for customization after app launch
[window makeKeyAndVisible];

return YES;
}
메소드가 application:didFinishLaunchingWithOptions:로 바뀌었다. 또 다른 특징은 리턴return 값 형식이 void에서 BOOL로 바뀌었다는 것이다. 그래서 이번에 바뀐 메소드에는 return YES;가 추가되었다.

물론 기존 코드도 잘 작동하는 것으로 봐서는 현재 어플리케이션 실행이 끝나면 두 메서드 모두를 호출하는 것으로 판단된다. 하지만 앞으로는 아래 방식을 애플에서 장려하는 듯 하므로, 아래 형식의 메소드를 활용해야 하겠다.







Posted by studio2b 마이클

댓글을 달아 주세요

AppleApp/Objective-C2010. 7. 7. 23:53
객체 인스턴스를 해제하는 방법에는 두 가지가 있다.
하나는 인스턴스에 nil값을 대입하는 것이고, 다른 하나는 객체에 release메시지를 보내는 것이다.
코드로는 다음과 같이 표현한다.
//nil
Instance = nil
//release
[Instance release]
타 언어에서는 해제된 인스턴스에 대하여 메시지를 보내면 오류를 발생하지만,
Objective-C에서는 해제된 인스턴스에 메시지를 보내면 단순히 무시할 뿐 오류를 발생하지는 않는다.
이 부분은 개발자 지향적인 모습이라고 하겠다.
Posted by studio2b 마이클

댓글을 달아 주세요