• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

소프트웨어

[App 개발] 클레스 외부의 변수를 사용하네요? ;;;

본문

애플에서 예제로 제공되는 코드를 보는 중입니다. ( SQLiteBooks )
일단 AppDelegate.h에

          @interface AppDelegate : NSObject {
              IBOutlet UIWindow *window;
              IBOutlet UINavigationController *navigationController;
              NSMutableArray *books;
              sqlite3 *database;
          }

          @end

이렇게 선언이 되어있습니다. (프로퍼티랑 기타 함수는 생략했습니다.)

그리고 MasterViewController.h는 이렇구요.

          #import

          @class DetailViewController, AddViewController, EditingViewController, Book;

          @interface MasterViewController : UIViewController {
              IBOutlet UITableView *tableView;
              UINavigationController *addNavigationController;
              DetailViewController *detailViewController;
              AddViewController *addViewController;
          }

          @end

그런데 궁금한게 MasterViewController.m에서 AppDelegate에서 선언된 navigationController 오브젝트를 사용한다는 겁니다.
밑에가 MasterViewController에서 navigationController를 사용하는 함수입니다.

          - (IBAction)addBook:(id)sender {
                   AddViewController *controller = self.addViewController;
                   controller.book = [[[Book alloc] init] autorelease];
                   if (addNavigationController == nil) {
                            UINavigationController *navController = [[UINavigationController alloc]      
                                                                                                              initWithRootViewController:controller];
                   self.addNavigationController = navController;
                   [navController release];
                   }
          //이부분입니다.
                   [self.navigationController presentModalViewController:addNavigationController animated:YES];
                   [controller setEditing:YES animated:NO];
          }

MasterViewController에서는 navigationController를 선언하지도 않았고, 여기 이외에서는 저 변수명을 볼 수도 없네요...
물론 AppDelegate에서도 전역으로 선언한것처럼 보이지 않구요...
Scoope개념이 C++같은것과 좀 다른가요?
이게 어떻게 가능한지 알려주세요. ㅜㅜ


혹시하는 마음에 코드도 올립니다. (그런데 이 코드 올렸다고 애플쪽에 뭔가 문제되지는 않겠죠? ;;;; )
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 15,153
가입일 :
2006-08-01 13:35:22
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 2

hongjuny님의 댓글

샘플 코드는 배포된 형태 그대로 재배포해도 상관없다고 설명서에 써 있으니 괜찮을 겁니다. ^^

그건 그렇고, navigationController 인스턴스는 바로 위에서 UINavigationController 클래스로 선언되어 addNavigationController 메쏘드로 등록된 것 같은데요?

나도맥님의 댓글

답변 감사합니다. 그런데 UINavigationController클레스로 navigationController를 선언 해 놓은 클레스는 AppDelegate고
지금 self.navigationController로 사용중인 클레스는 MasterViewController라 이해가 안되는 중입니다.

self란 소리는 자기가 가지고 있는 변수나 메소드만을 사용한다는 소리로 알고 있는데 저 [self.navigationController presentModalViewController:addNavigationController animated:YES];구문이 있는 클레스내에선 navigationController라고 선언된 것이 아무것도 없어서 질문을 했었습니다.

C++경우에 다른 클레스의 변수는 상속을 받던지 하는 경우만 사용 가능하지 않나요?


라고 해놓고 문득 도큐먼트를 찾아보니 UIViewController Class 에 따로 navigationController란 property가 있네요... AppDelegate에서 선언한 넘이랑은 다른 넘인가봅니다... 왜 이름이 똑같아서 ㅜㅜ

(맞나 모르겠네요 ;; )

전체 4 건 - 1 페이지
2008.09
24

[App 개발] 하나의 파일(h/m합쳐서)에 복수의 클레스 선언이 가능한가요?

onefile.h파일에서 @interface class1 ---- ---- @end @interface class2 ==== ==== @end 하고 onefile.m파일에서 @implementation class…

2008.08
13

열람중 [App 개발] 클레스 외부의 변수를 사용하네요? ;;;

애플에서 예제로 제공되는 코드를 보는 중입니다. ( SQLiteBooks ) 일단 AppDelegate.h에           @interface AppD…

2008.07
24

[App 개발] .h파일에 선언하는 method에 대해 질문입니다.

코코아 프로그래밍 3판을 보고 있는데... 예를 들자면 AppController클레스를 만들었을때 .h파일과 .m파일이 만들어집니다. 그런데 책의 예제 코드를 보면 어떤 메소드는 .h에 선언을 해 놓고 또 어떤 메소드는 선언없이 그냥 .m파…

2008.05
14

[App 개발] 생 초보가 에러 문의드립니다. ㅜㅜ

iPhone 개발에 흥미를 느껴서 졸업프로잭트를 iPhone응용프로그램으로 덜컥 잡아놓은 학생입니다. 근데 날이 갈 수록 난감하네요... BETA라 나올때마다 뭔가 조금씩 달라지고... C, C++만 주구장창 써서 Objective-C도 생…