책, Programming in Objective-C 2.0
현재 보고 있는 책입니다.
이것 저것 배우는 것을 좋아하는 성격에 여러 언어들을 사용하다 보니 언어는 비슷하다는 생각을 갖게 되었었습니다.
Objective-C 를 처음 본게 2007년 10월 경, 맥 네이트온 인수인계 받으면서 인데요.
이번에 맥 네이트온을 안정화 시키겠다고 다짐하고 달려들었지만
역시 내공이 모자랐던 것 같은 생각이 들었습니다.
오늘 “Programming in Objective-C 2.0″ 이란 책을 회사 동료가 가지고 있어서
잠시 빌려서 보고 있는데 기존에 알고 있던 것들을 좀 더 체계적으로 설명을 해주고
제대로 쓰는 방법을 알려주는 면이 있어서 재미있게 보고 있습니다.
특히 메모리를 제대로 쓰는 쪽이 관심이 많이가고 먼저 보게 되었습니다.
보면서 맥 네이트온 죽는 문제에 도움이 될 것 같아서 기분 좋게 보고 있습니다.
혹시, 맥 네이트온이 죽지 않게 할 좋은 책 있으면 추천해주시면 고맙겠습니다~ ㅎㅎ;
- 끝 -
Cocoa, 디버그 log를 NSLog 대신 만들어 사용하기.
형식있는 로그를 만들기 위해서 다음과 같이 해봤다.
* common.h
...
#define __FILENAME__ (strrchr(__FILE__,'/')+1)
#define NMLog(msg) NSLog(@"%s(%d) - %@", __FILENAME__, __LINE__, msg)
...
* AppController.m
import "commin.h"
...
NMLog(@"XXX");
* NMSession.m
import "commin.h"
...
NMLog( (@"sendPacket : %@", aPacket) );
주의 : NMLog는 인자를 1개 받기 때문에 “()”를 사용해서 @”sendPacket : %@”, aPacket 를 쌌다. 안싸면 arg가 2개라고 NMLog를 찾을 수 없다는 에러를 낸다.
* 출력결과
...
2008-07-25 18:51:14.629 NateOn[2683] AppController.m(966) - XXX
2008-07-25 18:51:15.237 NateOn[2683] NMSession.m(653) -
...
참고 사이트 :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=777
Cocoa, RegexKit Framework ld error in 10.4.11 tiger.
컴파일에서 다음과 같은 에러가 발생하면, RegexKit Framework Source를 받아서 Compile해서 추가하면 에러가 발생하지 않는다.
collect2: ld returned 1 exit status
cd /Users/x/Documents/trunk/NateOn
/Developer/usr/bin/g++-4.0 -o /Users/x/Documents/trunk/NateOn/build/NateOn.build/Debug/NateOn.build/Objects-normal/ppc/NateOn -arch ppc /Developer/Library/PrivateFrameworks/ZeroLink.framework/Versions/A/Resources/libZeroLinkAppStub.a -Wl,-all_load -L/Users/x/Documents/trunk/NateOn/build/Debug -L/Users/x/Documents/trunk/NateOn -L/Users/x/Documents/trunk/NateOn -L/Users/x/Documents/trunk/NateOn -L/Users/x/Documents/trunk/NateOn -L/Users/x/Documents/trunk/NateOn -L/Users/x/Documents/trunk/NateOn -F/Users/x/Documents/trunk/NateOn/build/Debug -F/Users/x/Documents/trunk/NateOn/.. -F/Users/x/Documents/trunk/NateOn/.. -F/Users/x/Documents/trunk/NateOn -F/Users/x/Documents/trunk/NateOn/Frameworks -F/Users/x/Documents/trunk/NateOn -F/Users/x/Documents/trunk/NateOn -F/Users/x/Documents/trunk/NateOn -F/Users/x/Documents/trunk/NateOn -F/Users/x/Documents/trunk/NateOn -F/Developer/Local/Frameworks -F/Developer/Local/Frameworks -framework Growl -framework Cocoa -framework WebKit -lcrypto -framework Carbon -framework SystemConfiguration -framework IOKit -framework RegexKit -Wl,-Y,1455 -framework ZeroLink -F/Developer/Library/PrivateFrameworks -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -Wl,-x -Wl,-unexported_symbols_list -Wl,/Developer/Library/PrivateFrameworks/ZeroLink.framework/Versions/A/Resources/ZeroLinkAppStub.nexp -Wl,-sectcreate -Wl,__TEXT -Wl,__zerolink -Wl,/Users/x/Documents/trunk/NateOn/build/NateOn.build/Debug/NateOn.build/Objects-normal/ppc/NateOn.zerolink
/Developer/usr/bin/../libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: warning -F: directory name (/Users/x/Documents/trunk/NateOn/Frameworks) does not exist
/Developer/usr/bin/../libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: /Developer/Local/Frameworks/RegexKit.framework/RegexKit unknown flags (type) of section 6 (__TEXT,__dof_RegexKit) in load command 0
collect2: ld returned 1 exit status
주의사항
- RegexKit Framework 컴파일은 README.MacOSX를 보고 Terminal에서 컴파일 한다. 소스안의 RegexKit.xcodeproj를 XCode로 컴파일하니 Warnning이 발생했다.
- 개인적으로 MacPort를 사용하고 있어서 Termial에서 compile이 아마 XCode에서의 컴파일과 다르지 않을까? 하는 생각을 한다.
RegexKit 홈페이지 : http://regexkit.sourceforge.net/


