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

팁사용기

[팁] Cocoa 에 대한 질문..

본문

코코아 책(정확히는 pdf...)을 열심히 보고 있는데..
정확히 이해를 했는지 못했는지 몰라서..

질문들을 올리겠습니다.

1.

NSMutableArray *array;
int i;
NSNumber *newNumber;
NSNumber *numberToPoint;

NSAutoreleasePool pool = [[NSAutoreleasePool alloc] init];

array = [[NSMutableArray alloc] init];
for(i = 0; i < 10; i++) {
newNumber = [[NSNumber alloc] initWithInt: (i * 3)];
[array addObject: newNumber];
// 만약 코코아에 대해 조금 알고 있다면 제가 메모리 누설을 만들었다는 것에 주목하셔야 됩니다.
// 우리는 있다가 이 문제를 수정하겠습니다.
}

...
....


... 이 소스코드 다 모릅니다!!
는 아니구요..
id 가 객체의 포인터라길래 맨 첫번째의 NSMutableArray * 나 NSNumber *, NSAutoreleasePool * 부분을 id로 바꿨는데요. 실행이 잘 되는 것입니다. id 가 모든 객체의 포인터로 사용할 수 있는 건가요?
가만히 생각해보니 id도 인스턴스가 되는거군 -ㅅ-;

2.

[foo insertObject:bar atIndex:5];

아무리 생각을 해봐도 이 부분은 잘 모르겠어요..ㅜㅜ
개념을 모르는 것은 아니구요.
콜론의 왼쪽부분이 설명을 하는 부분이라고 나오던데요.
insertObject, atIndex 메소드에 각각 bar, 5 argument 를 넣는건지.. 아니면 단지 설명만 하는 부분인지..
잘 모르겠어요.
엇그제 답변 해 주신 것 같았는데.. 저장을 못하는 바람에..ㅜㅜ

부탁드립니다..ㅜㅜ
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 38,308
가입일 :
2005-08-18 19:01:33
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 3

빵발이아빠님의 댓글

2. 둘 다 argument 로 넘어가는 것입니다.
foo 오브젝트에 insertObject:atIndex 라는 메쏘드를 부르는데, 첫 번째 argument 가 bar, 두 번째 argument 가 5 가 되는 것이지요.

hongjuny님의 댓글

첫 번째 질문 내용이 약간 모호하네요.

그러니까, 예를 들어 첫 번째 문장의 NSMutableArray *array; 를 NSMutableArray array; 와 같은 형식으로 바꾸어 정의해도 프로그램이 문제없이 작동하더라는 뜻인가요?

실제 그렇게 하면 컴파일이 성공하지 않고 statically allocated instance 라는 에러가 나올 거예요.

그리고, 두 번째 질문은 Obj-C 의 특장점 중 하나인 self-explanatory 메쏘드 선언 이라는 것인데요, 빵발이아빠님 답변이 정확하고요. 주로 Obj-C 에서 이런 부분을 좀 더 명확히 하기 위해서 소스를 보기좋게 이런 식으로 만들어 놓기도 하지요.

[foo insertObject: bar
              atIndex: 5];

이렇게 하면 foo 라는 객체의 메쏘드 insertObject 의 argument 로서 bar 를 넣는데, 그 인덱스가 5 이다... 라는 것이 확실하게 표현되지요. 메쏘드 선언 자신이 그 특성을 설명한다는 self-explanatory 가 됩니다.

hongjuny님의 댓글

프린이님과의 대화 이후 첫 번째 문제가 해결되어 다시 첨언합니다.

프린이님의 질문을 제가 잘못 이해해서 발생한 문제였습니다. -_-;

NSMutableArray *array; <=== 이 문장을

id array; <=== 이렇게 바꾸었을 때

잘 실행되는 것이 맞느냐? 라는 질문이었고 -_-;;

Objective-C 에서 id 라는 type 은 형식 불문한 일반 객체를 선언하는 내용이라는 정리 였습니다. ^^

전체 10 건 - 1 페이지