정오표 (2판)

 

‘코코아 프로그래밍’ 2판(원서 3판) 1쇄 정오표

xvi쪽 첫 줄에서 원서명으로 교체
 코코아 프로그래밍의 2판 번역서가 나온 지 얼마 지나지 않아 3판이 등장하였습니다.

『Cocoa Programming for MAC OS X』의 2판 번역서가 나온 지 얼마 지나지 않아 3판이 등장하였습니다.

 

서문 14째줄(Prin-E 님)
가비지 컬렉터(garbage collertor)

가비지 컬렉터(garbage collector)

5쪽 옮긴이 주석에서 탈자(김태연님)
 1 (옮긴이) 역자의 블로그 http://jinhyung.org/jenix를 방문하면 이에 관련된 IBM DevelopWorks 기고를 찾아볼 수 있다.

 1 (옮긴이) 역자의 블로그 http://jinhyung.org/jenix를 방문하면 이에 관련된 IBM DeveloperWorks 기고를 찾아볼 수 있다.

 

13쪽 9째줄(Prin-E 님)
Finish 버튼을 클릭한다.

Save 버튼을 클릭한다.

 

28쪽 아래쪽 소스코드
[textField setInValue:count]

[textField setIntValue:count]

 

32쪽 소스코드(박노엘 님)
[textField setObjectiveValue:now]

[textField setObjectValue:now]

 

34쪽 아래에서 둘째 줄(곽상혁 님)
애플리케이션이 키보드와 마우스에서 이벤트를 받으면 애플리케이션 서버는

애플리케이션이 키보드와 마우스에서 이벤트를 받으면 윈도 서버는

 

41쪽 소스코드(우울한딱따구리 님)
for ( i = 0; i < 10; i++ ) {
NSNumber *newnumber = [[NSNumber alloc] initWithInt:(i * 3)];
[array addObject:newNumber];
}

for ( i = 0; i < 10; i++ ) {
NSNumber *newNumber = [[NSNumber alloc] initWithInt:(i * 3)];
[array addObject:newNumber];
}

 

42쪽 맨 아래 소스코드에서 둘째 줄 코드 추가(곽상혁 님)

for (i=0; i<10;i++) {

numberToPrint = [array objectAtIndex:i];

for (i=0; i<10;i++) {

   NSNumber *numberToPrint = [array objectAtIndex:i];

 

43쪽 표 3-1 중에서 대문자로 변경(Prin-E 님)
%s unichar 문자열

%S unichar 문자열

 

53쪽  소스코드 첫 줄에서(홍영민 님)
#import<Foundation/Foundation.h>       // #import <Cocoa/Cocoa.h> 로 대체.
@interfaceLotteryEntry : NSObject {
NSCalendar*entryDate;
intfirstNumber;
intsecoundNumber;
}

– (void)prepareRandomNumbers;
– (void)setEntryDate:(NSCalendar*)date;
– (NSCalendar*)entryDate;
– (int)firstNumber;
– (int)secoundNumber;

@end

 

78쪽 소스코드 셋째 줄에서 세미콜론 누락(김태연 님)

}

// ‘now’를 다 사용하였다.

[now release]

[now release];

 

79쪽 “dealloc 구현하기”절의 첫 코드(Prin-E 님)

– (void)dealloc

{

NSLog(@”dallocing %@”, self);

 NSLog(@”deallocing %@”, self);

 

83쪽 소스코드 6번째 줄에서 소문자로 변경(김태연 님)
  for (i=0; I < [myArray count]; i++) {

  for (i=0; i < [myArray count]; i++) {

 

90쪽 첫째 줄에서(우울한딱따구리 님)
앱킷 프레임워크를 이해하려면 NSControl의 서브클래스인 NSControl, NSButton…

앱킷 프레임워크를 이해하려면 NSObject의 서브클래스인 NSControl, NSButton…

 

103쪽 ‘디버깅 힌트’절의 아래에서 3번째 줄(김태연 님)
디버깅 심벌을 제거한다. 프로그램에 디버깅 심벌이 없으면 디거버가 이상하게

디버깅 심벌을 제거한다. 프로그램에 디버깅 심벌이 없으면 디버거가 이상하게

 

104쪽 4째 문단 2째 줄 s 삭제 (Prin-E 님)
다. 그림 5.15와 같이 하나는 NSZombiesEnabled를 YES로, 다른 하나는

 다. 그림 5.15와 같이 하나는 NSZombieEnabled를 YES로, 다른 하나는

 

114쪽 소스코드 넷째 줄 코드 볼드 해제(우울한딱따구리 님)

 #import <Cocoa/Cocoa.h>

@interface AppController : NSObject
{
IBOutlet NSTextField *textField;
IBOutlet NSButton *startButton;       (<–볼드 없어야 함)

   IBOutlet NSButton *stopButton;
IBOutlet NSTableView *tableView;
NSArray *voiceList;
   NSSpeechSynthesizer *speechSynth;
}

 

118쪽 소스코드

– (id)tableView: …

objecValueForTableColumn:…

– (id)tableView: …

objectValueForTableColumn:…

 

120쪽 첫 번째 소스코드 맨끝에 ‘}’ 붙여야 함.(Prin-E 님)

– (void)awakeFromNib

{

// 테이블 뷰가 화면에 나타날 때 기본 목소리가

// 선택되어야 한다.

NSString *defaultVoice = [NSSpeechSynthesizer defaultVoice];

int defaultRow = [voiceList indexOfObject:defaultVoice];

[tableView selectRow:defaultRow byExtendingSelection:NO];

[tableView scrollRowToVisible:defaultRow];

}

 

125쪽 첫 소스코드의 맨 밑줄에서 s를 빼야 함(Prin-E 님)
@ends

@end

 

136쪽 “더 파고들기- 키 경로”의 마지막 코드에서 닫는 큰따옴표 붙여야 함.(Prin-E 님)
 [textField unbind:@”value];

    [textField unbind:@”value];

 

136쪽 “더 파고들기- 키-밸류 옵저빙”절의 첫 코드에서 셋째 줄에 코드 추가(Prin-E 님)
options:NSKeyValueObservingOld

options:NSKeyValueObservingOptionOld

 

136쪽 맨밑에서 두 번째 줄에서 닫는 큰 따옴표를 붙여야 함.(Prin-E 님)

이 경우 keyPath은 @”fido가 되고 obejct은 AppController이 된다.

 이 경우 keyPath은 @”fido가 되고 obejct은 AppController이 된다.

 

149쪽 둘째 줄 s를 빼야 함(Prin-E 님)
될 수 있으나 floats는 그럴 수 없기 때문이다.

될 수 있으나 float는 그럴 수 없기 때문이다.

 

149쪽 세 번째 문단의 첫 줄에서 k를 대문자로(Prin-E 님)
여기서 만든 포매터를 적용할 때 종종 setNilValueForkey:를 재정의할 필요가 없

여기서 만든 포매터를 적용할 때 종종 setNilValueForKey:를 재정의할 필요가 없

 

163쪽 두 번쨰 코드 맨 끝에 다음의 코드를 추가해야 함.(seonguki 님)
– (void)stopObservingPerson:(Person *)person
{
[person removeObserver:self forKeyPath:@”personName”];
[person removeObserver:self forKeyPath:@”expectedRaise”];
}

 

186쪽 코드 첫 줄 s 추가(Prin-E 님)
cd /Application/TextEdit.app/Contents

cd /Applications/TextEdit.app/Contents

 

196쪽 7째줄(우울한딱따구리 님)
또한 Generate Decimal Numbers and Always Shows Decimal 옵션을 선택하자

또한 Generate Decimal Numbers Always Shows Decimal 옵션을 선택하자

 

205쪽 둘째 줄 오자 (Prin-E 님)
ument.nib.MainManu.nib이다. 애플리케이션을 처음 실행할 때 NSApplication은

ument.nib이다. 애플리케이션을 처음 실행할 때 NSApplication은

 

216쪽 밑에서 7째 줄 오자(Prin-E 님)
changeBackgroundColor와 checkboxChanged: 메서드는…

changeBackgroundColor:changeNewEmptyDoc: 메서드는…

 

226쪽 위의 코드에서 11번째줄(우울한딱따구리 님)
[defaultValues setObject:[NSNumber numberWithBool:YES] forKey:BNRKey]

[defaultValues setObject:[NSNumber numberWithBool:YES] forKey:BNREmptyDocKey]

 

227쪽 밑에서 18째줄 코드(Prin-E 님)
[checkbox setState:[self emptyDoc]];

 [checBox setState:[self emptyDoc]];

 

275쪽 첫째 줄 / 삭제(Prin-E 님)
– (int)clickCount/

– (int)clickCount

 

275쪽 ‘마우스 이벤트 얻기’ 절 첫 코드 6째,9째줄(Prin-E 님)

-(void)mouseDragged:](NSEvent *)event                        ( <- ] 삭제)

{

NSPoint p = [event locationInWindow];

NSLog(@mouseDragged:%@”, NSStringFromPoint(p));  (<-따옴표 모양 “로 수정)

 

297쪽 둘째 코드의 4째 줄에서 o 삭제(Prin-E 님)
[c retaion];

[c retain];

 

298쪽 첫째 줄(Prin-E 님)
다. 만약 뷰가 윈도의 퍼스트 리스폰더라면  윈도 가장자리를 파란 테두리로 표시

다. 만약 뷰가 윈도의 퍼스트 리스폰더라면   가장자리를 파란 테두리로 표시

 

299쪽 1째, 4째줄 – 19장 키보드 이벤트(Prin-E 님)
keyDowns 이벤트에서 뷰는 문자열을                                      (1째 줄)

keyDown: 이벤트에서 뷰는 문자열을

 

NSView에서 상속 받은 NSResponder는…                              (4째 줄)

NSView가 상속하는 NSResponder는…

 

387쪽 8째 줄 소스코드에서 소문자 d로 (seonguki 님)
@”AWSAccessKeyID=%@&”

@”AWSAccessKeyId=%@&”

 

464쪽 ‘인터페이스 빌더’절의 둘째 줄(김태연 님)
밍에서 했던 것처럼 Xib(1) 파일을 다. Xcode에서, 왼쪽의 Groups&Files에서

 밍에서 했던 것처럼 Xib(1) 파일을 다. Xcode에서, 왼쪽의 Groups&Files에서

 

473쪽 위에서 3째줄(Prin-E 님) 6째줄(김태연 님)

케이션과 똑같이 NSApplicationMain 함수를 통해                  (3째 줄)

케이션과 똑같이 UIApplicationMain 함수를 통해

 

앱킷과는 약간 다르게 클래스 상속을 한다. 코코아에서 NSWindow NSViwe와         (6째 줄)

 앱킷과는 약간 다르게 클래스 상속을 한다. 코코아에서 NSWindow와 NSView는