목록프로그래밍/삽질로그 (14)
일상에서 멍때리기
예를 들어 /Users/user/Projects/thefile.ext와 같은 풀패스가 들어있는 NSString에서 thefile.txt만 추출하기 위해서는 다음과 같은 방법을 사용하면 된다. NSString *filename = [string lastPathComponent];그렇다면 여기서 확장자 명까지 제거하고 싶다면? NSString *filename = [[string lastPathComponent] stringByDeletingPathExtension];
NSMutableArray안에서 특정조건으로 검색하여 아이템을 제거하고 싶었다. 그래서 아래와 같은 코드를 작성했다. for ( id item in items ) { if ( [item customCheck] ) [items removeObject:item];} 위와 같은 코드를 작성하였더니, exception과 함께 정상적으로 동작하지 않았다. 따라서 이 문제를 해결하기 위해 google에서 검색을 해본결과 아래와 같은 방법들로 사용을 해야한다는것을 알았다. 1.NSMutableArray *removeItems = [NSMutableArray array];for ( id item in items ){ if ( [item customCheck] ) { [removeItems addObject:item];..
NSMutableArray에 NSRect를 넣으려하면 에러가 발생하며 넣어지지 않는다. NSRect는 단순한 struct이고 NSMutableArray는 NSObejct를 상속받은 인스턴스의 배열이기 때문에 넣을 수 없는듯하다. 따라서 NSRect를 NSValue로 변환하여 넣는 방식을 사용한다. NSMutableArray* rectArray = [[NSMutableArray alloc] init];NSRect rect = NSMakeRect(x, y, w, h);NSValue* value = [NSValue valueWithRect:rect];[rectArray addObject:value]; 값을 가져올 떄는 아래와 같이 사용한다.NSValue* value = [rectArray lastObject]..
cocos2dx의 이동 action에는 두가지가 존재합니다.MoveTo와 MoveBy 이 둘의 차이점은 무엇일까요? MoveTo : 지정한 좌표로의 이동MoveBy : 현재 좌표에서 주어진 값만큼 이동 예를 들어 50, 50에서 200, 200으로 이동을 하고 싶다면 아래와 같이 좌표를 지정해주어야 합니다. MoveTo : 200, 200 - 지정한 좌표로 이동하기 때문에 200, 200을 지정해주면됩니다. MoveBy : 150, 150 - 현재좌표(50, 50)에서 (200, 200)의 점으로 이동하기 위해서는 x, y좌표를 각각 150씩 이동해주어야합니다.
gcc로 컴파일할 때, define이 설정된 파일등의 경우 모든 파일에 include을 해줘야하는 번거로움이 발생합니다. iOS xcode같은 경우에는 프로젝트에 Prefix.pch file이 존재하여 해당 파일에 include를 해주면 모든 코드에서 자동으로 include가 된다고 합니다. 그렇다면 gcc에서는 어떻게 써야할까요? 정답은 다음과 같습니다. -include file gcc manual page를 찾아보니 Preprocessor Options중에 나오더군요. 테스트 결과 header file을 일일이 넣지 않아도 해당 header가 포함된 것을 확인했습니다. manual page의 내용은 아래와 같습니다. 참고하세요! -include file Process file as if "#inclu..
Landscape와 Portrait로 전환시 이벤트를 받아오는 방법에 대한 코드 1 public void onConfigurationChanged(Configuration newConfig) { 2 super.onConfigurationChanged(newConfig); 3 if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) // 세로 전환시 발생 4 { 5 System.out.println("portrait!!!!로 전환!!========="); 6 } 7 else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) // 가로 전환시 발생 8 { 9 System.out.pr..
명령어 : adb shell dumpsys activity중략 ... Running activities (most recent first): TaskRecord{40ba1598 #122 A com.com2us.bb2011.normal.paid.oz.kr.android.common} Run #2: HistoryRecord{406287a8 com.com2us.bb2011.normal.paid.oz.kr.android.common/.MainActivity} TaskRecord{409bae60 #92 A com.sec.android.app.twlauncher} Run #1: HistoryRecord{4093f758 com.sec.android.app.twlauncher/.Launcher} TaskRecord{4..
mac 에서는 기본적으로 ssh server가 내려가 있기 때문에 ssh접근을 할 수 없습니다. 하지만 간단하게 ssh를 활성화 시킬수 있습니다. 시스템 환경설정 -> 공유 -> 원격 로그인 을 체크해주면 ssh를 간단히 활성화 시킬 수 있다.
큰수를 써야 할 경우 64bit int가 필요할 때가 있습니다. 어떻게 표현할까요? visual C(window)를 먼저 보면 선언 및 출력은 아래와 같습니다. 선언 : __int64 , unsigned __int64 출력 : %I64d, %I64u gcc(linux)에서는 조금 다르게 아래와 같이 표현됩니다. 선언 : long long, unsigned long long 출력 : %lld, %llud
linux만 쓰다가 mac OS X로 넘어와서 이래저래 해깔리는 부분이 많이 있습니다. max OS X 에서의 동적 라이브러리는 dynamic libraries로 dylib의 확장자를 같습니다. 환경 설정 적인부분에서 linux의 LD_LIBRARY_PATH 변수를 지정하여 동적 라이브러리 위치를 표시하는 반면, max OS X에서는 DYLD_LIBRARY_PATH변수를 설정해 줍니다. 그렇다면 라이브러리의 의존성 확인은 어떻게 할까요? linux의 ldd, window의 dumpbin이 있듯 mac OS X에서는 otool이라는 툴을 이용하여 확인이 가능하며 사용방법은 아래와같습니다. otool -L file 이외에도 otool은 많은 기능과 옵션을 가지고 있습니다. (man page 참조) 만약 실행..