본문 바로가기

오탈자 정보

[아론 힐리가스의 오브젝티브-C 프로그래밍]_오탈자

현재까지 발견된 위 책의 오탈자 정보와 오류 사항 그리고 보다 매끄러운 문장을 위해 수정한 내용들입니다. 불편을 끼쳐드려 죄송합니다.

혹시 이 외의 오탈자 정보를 발견하시는 분이 계시면 출판사 메일 jeipub골뱅이gmail.com이나 역자 메일 justdoit709골뱅이gmail.com으로 연락주시면고맙겠습니다. 

최종수정일자: 2013년 2월 7일
1쇄본 오탈자


아래의 오탈자 사항은 추후 재쇄 시에는 모두 반영하도록 하겠습니다. 집필과 편집 시에 미처 확인을 하지 못해 불편을 끼쳐드려 다시 한 번 죄송하다는 말씀을 드립니다.  

 

xvi쪽 세 번째 행(역자 제공)

미키 워드 ==> 마이키 워드

 

7쪽 역주에서(역자 제공)
OS X Lion을 사용한다면 ==> OS X Lion 이후 버전을 사용한다면

 

17쪽 역주에서(역자 제공)
OS X Lion과 Xcode가 업데이트되면서 ==> OS X Lion 이후 Xcode가 업데이트되면서

 

31쪽 표 4.2 논리 연산자 2번째 행(냐하하 님 제공)

논리 OR - 어느 한쪽이 거짓이면 거짓이다

==>

논리 OR - 어느 한쪽이 참이면 참이다

 

43쪽 코드 박스 안에서(역자 제공)

#include <stdlib.h> ==> #include <unistd.h>

 

74쪽 아래 코드 박스 바로 위 두 번째 행(역자 제공)

코드에서 3은 명백하게 ==> 코드에서 3의 배수는 명백하게

 

105쪽 코드 아래 첫 번째 문단에서, 4군데(황동환 님 제공)

NSData ==> NSDate


125쪽 우측 상단 챕터 안내 부분(정욱 님 제공)

Chapter 14 NSString ==> Chapter 15 NSArray


130쪽 역주에서(역자 제공)
경어체를 사용할 것이다. ==> 경어체를 사용한다.

 

134쪽 밑에서 두 번째 문단(역자 제공)

왼쪽의 Mac OS X 섹션에서 ==> 왼쪽의 OS X 섹션에서

 

140쪽 밑에서 세 번째 행(역자 제공)

대괄호 대신 점(.)을 사용하는 형식은 ==> 대괄호 대신 점(.)을 사용한다고 해서

 

193쪽 세 번째 행(역자 제공)

이런 정보를 가리켜 상수(~)라고, 부른다. ==> 이런 정보를 가리켜 상수(~)라고 부른다.

 

199쪽 역주에서 (역자 제공)

종류를 갈기 ==> 종류 갈기




  • 배우는 사람 2013.01.30 23:24

    오늘 책을 구입해서 32쪽까지 보고 있는데요
    p.32에서 BOOL 이 나오는데 컴파일 실패(선언이 안된...) 나서 포럼보고 해결했는데요 책 내용과 상이한 부분이 많나요? 이 책의 버전이 4.3이지만 현재까지 개정판도 없으니
    저자님이 Xcode 4.6 으로도 공부해도 지장없게금 상이한 부분을 정오표를 새롭게 만들어 주세요
    부탁드리며 새해 복 많이 받으세요~

    • 배장열 2013.01.31 09:29

      안녕하세요. 역자입니다.
      우선 책을 구입해주셔서 감사드립니다.
      아무쪼록 좋은 결과가 있으시길 바랍니다.
      말씀하신 내용은 Xcode 버전과 상관없습니다.
      부울을 설명하기 위한 코드 스니펫(조각)입니다.
      그러니까 로직을 설명하기 위한 코드의 일부분이지 있는 그대로 컴파일되는 것은 아닙니다. 컴파일하시려면 프로그램의 틀을 갖춰서(변수 선언 등) 온전한 코드로 작성하셔야 합니다. 만일 온전한 코드를 작성하시고 오류가 발생한다면 캡처해서 다시 문의해주세요. 확인하고 답글 달겠습니다. 다른 모든 부분도 Xcode 버전과는 아무런 상관없습니다.
      고맙습니다.

  • 배우는 사람 2013.01.31 21:17

    p.43 에 implicit declaration 경고 관련해서
    본문에는 stdlib.h 파일에 sleep함수가 선언 되어있다고 했는데
    그게 아니고 unistd.h 에 선언 되어있네요 (경고가 없어짐)

    • 배장열 2013.02.06 12:06

      안녕하세요.
      sleep()함수가 선언된 헤더 파일은 시스템마다 조금씩 다릅니다.
      Windows에서 사용하려면 windows.h를 추가해야 하고
      유닉스/리눅스 계열에서는 unistd.h가 맞는 듯합니다.
      아마 저자의 착각인 듯. Xcode 버전과는 관계 없습니다.
      저자에게 문의하였으니 답장이 오는 대로 말씀드리겠습니다.
      고맙습니다.
      =====================
      빅너드랜치 포럼에 올라온 여러 질문대로 unistd.h가 맞습니다.
      저자의 확인 메일을 받았습니다. 2판에서는 수정될 것이라고 합니다.
      고맙습니다.

  • 배우는 사람 2013.02.01 03:39

    p.46 되부름 관련해서
    #include <stdio.h>
    void singTheSong(int numberOfBottles)
    {
    if (numberOfBottles == 0) {
    printf("There are simply no more bottels of beer on the wall.\n";);
    }
    else {
    printf("%d bottels of beer on the wall. %d bottles of beer.\n", numberOfBottles, numberOfBottles);

    int oneFewer = numberOfBottles - 1;
    printf("Take on down, pass it aroud, %d botteles of beer on the wall.\n", oneFewer);

    singTheSong(oneFewer); // 이 함수가 자신을 호출한다!
    printf("Put a bottle in the recycling, %d empty bottels in the bin.\n", numberOfBottles);
    }
    }

    int main (int argc, const char*argv[])
    {
    singTheSong(99);
    return 0;
    }
    ----------
    printf("Put a bottle in the recycling, %d empty bottels in the bin.\n", numberOfBottles); 코드의 실행인
    (Put a bottle in the recycling, 1 empty bottels in the bin.)
    이부분이 어떻게 해서 출력 되는지 모르겠습니다 어째서 1번부터 다시 변수가 지정 될 수 있죠?

    if 조건이 참이 되면 else는 코드를 실행하지 않아야 하는거 아닌가요?

    • 배장열 2013.02.01 16:41

      이어서 말씀드립니다.
      numberOfBottles와 oneFewer의 값이 어떻게 바뀌는지가 48쪽의 그림 5.5입니다. 스택 메모리가 어떻게 사용되는지 이어지는 디버거 설명을 참조하시면 쉽지는 않지만 이해하실 수 있을 거라 생각합니다.
      예를 들면,
      A가 실행 도중 B를 호출했습니다. B가 끝나면 다시 A로 돌아가 남은 부분을 실행해야 겠죠. 그런데 A와 B가 같은 함수라면 어떻게 될까요?
      A가 실행 도중 A를 부른 거죠. 이게 되부름입니다. 되부름(리커전)과 단순 반복(아이터레이션, for나 while 등)은 다릅니다.
      이해하셨나요?

  • 배우는 사람 2013.02.01 19:54

    친절한 답변 주셔서 감사합니다~
    조건수식이 다 끝나도 singTheSong()은 자기를 호출 했으니까 계속 실행해야 하기 때문에 스택 쌓여진 순서대로 실행이 되는 거고
    스택프레임에서numberOfBotteles만 적용 되는건 oneFewer는 조건 수식이 끝나기 때문에 적용이 안되는거라고 이해하면 되나요?