Xcode2010. 8. 2. 17:25
런타임 디버그 시에 에러가 발생하면서 메모리 주소값인 call stack 정보가 발생한다. 이를 symbolicatecrash를 이용하여 심벌화하고 우리가 만들어 놓은 함수 명으로 대체한다.
symbolicatecrash의 위치는 아래와 같다.(Xcode 3.2.3)
/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

콘솔에서 symbolicatecrash를 실행하되 이미 컴파일된 *.dSYM 파일을 포함시킨다. 보통 .dSYM파일은 디버그 심벌파일로 .app과 같은 곳에 컴파일된다.

> symbolicatecrash 앱.crash 앱.app.dSYM
위처럼 등록하면 call stack을 심벌화 할 수 있다.

근데 현재 버전에서는 자동으로 심벌화하는 것 같다~ 게다가 Xcode 4버전(현재는 베타)에서는 디버그가 훨씬 편해졌다.
Posted by 버터백통
Objective C/C언어 기능2010. 7. 20. 14:51
1 컴파일과 인터프리터의 차이점

2 @Class지시어와 #import의 차이점

3 category와 protocol은 무엇인가?

4 멀티쓰레드 프로그램에서 원자성(atomic)과 비원자성(nonatomic)은 무엇인가?

5 autorelease pool의 drain발생 시점은 언제인가?

6 각 클래스의 인스턴스 객체의 소유개념은 무엇인가?

7 왜 클래스가 자신의 객체를 소유해야 하는가?

8 shallow copy와 deep copy는 무엇인가?

9 key - value 코딩은 무엇인가?

10 람다(lambda)에 대한 설명과 활용사례는 무엇인가?


대략 마치기전에 위에 10가지 정도는 다시 생각해 봐야 하지 않을까 싶어서 적어봤습니다.
사실 위에 10문제는 아이폰 경력 개발자 면접시에 제가 자주 질문하는 내용이기도 합니다~ ㅎㅎㅎ
Posted by 버터백통
Objective C/C언어 기능2010. 7. 18. 17:46

 지금까지 다루어 배열, 구조체, 문자 스트링 상수, 공용체 이들은 객체가 아니다.

 또한 Foundation프레임 워크에서 제공하는 기능, 특히 메모리 할당과 같은 기능을 사용할 없다.

 이는 메모리 활용 관리가 어렵다는 것이다.

 

 ############### 오브젝티브 C 동작하는 방식 ###############

 1) 인스턴스 변수는 구조체에 저장된다.

- 클래스와 그에 속한 인스턴스 변수를 정의하면 변수 들은 구조체에 저장된다.

- 객체는 인스턴스변수로 구성된 구조체이다.

- alloc으로 객체를 생성하면 구조체로 메모리 공간에 예약된다.

 

 2) 객체는 포인터이다.

 - Fraction * myFraction 같이 객체는 포인터이다.

 - myFraction = [Fraction alloc]; 으로 Fraction클래스(구조체) 리턴받아 myFraction 할당한다.(객체 생성)

 - 할당받은 myFraction Fraction 복사체이다

 - 원본과 별개의 메모리공간을 가지고 있으므로 원본 같은 것을 변수로 담고있는 들과 충돌이 나지 않는다.

 

 3) 메서드는 함수이다. 메시지 표현식( [myFraction add] ) 함수 호출이다.

 - 오브젝티브C 구조가 남다르기 때문에 메서드와 함수의 형태가 뚜렷하지만 둘은 같은 구조를 갖는 함수이다.

 - ) 프로그램에서 함수는 일반적인 함수의 형태를 갖고있다그러나 .m 에서의 메서드는 일반적인 함수와 형태가 다르지만 함수이다.

 

 - 메시지 표현식은 함수호출이다. 마찬가지로 다른 언어와 달리 함수 호출의 형태가 독특하며 명칭또한 다르다(메시지 표현) 그러나 함수호출과 같은 기능이다.

 

4) id객체는 포인터이다.

 - id객체는 포인터이므로 데이터 타입이나 객체 자유롭게 할당할 있다.

 

5) 모든 객체에는 꼬리표가 있다

- 모든 객체는 루트에서 상속받은 potected 정의된 isa 멤버(4바이트) 갖는다. 사실상 이것을 통해 객체를 분류하고 식별한다.

 


Posted by 버터백통