芝蘭之交

simp.egloos.com

포토로그



iPhone OS 3.2 에 추가 되는것 들

# UI 

 - Popovers : 기존 아이폰에서 모달창을 이쁘게 띄워주는 방법이다. 기존 UINavigationController 를 이용한 Modal 이 가능하긴 했으나 이쁘게 나오지 않아 별도로 만들어 구현했던 부분들을 대폭 줄일 수 있을 것 같다.

 - Split View  : 연동하는 여러뷰들을 관리해주는 컨트롤러라네요. iPad 용으로 만들어진 것 같은데 . 화면이 작은 iPhone 에서 얼마나 유용할지는 모르겠다.

 - Custom Input Views : 이제 키보드도 직접 만들 수 있게 되는 것이군요!

 - External Display Support : 블루투스로 외부로 화면을 쏴주는 게 생긴다더니 그게 이건가 보네요. 화면해상도를 고려해서 작업을 해야 하는듯하니 기존 수치 고정으로 넣었던것들이 있으면 난감하겠는데요

 - 제스처 인식 : 필요했습니다. 일일이 구현하기 귀찮았거든요.
  Tapping
  Pinching in and out
  Panning or dragging
  Swiping 
  Rotating
  Long press 

  정도가 지원되는 모양이네요. 역시 이런건 API 수준에서 해주면 감사할따름이지요.


# 향상된 텍스트 지원 ? 
  - CoreText !! 텍스트 관련 문단나누기, 컬럼 폰트 변경, 사용자 줄바꿈 등등 많은 기능이 들어 있는데 예제 좀 살펴봐야 뭐가 뭔지 알겠네요. 

  - Custom font support  : 우왕 긋

  - ICU Regular Expression Support : 정규식!!  기존 라이브러리 붙이는걸 계속 애먹고 있었는데 들어와 주시는 군요 감사감사


# File and Document Support
  좋습니다. 좋아요

  - 파일 공유 지원
  - 문서 지원 ( Info.plist 에 확장자를 등록할 수 있다네요 )
  - PDF Generation 





[iPhone SDK] interface builder 없이 개발 시작 하기

Xcode 에서는 Interface Builder 를 이용하지 않는 것을 원치 않는 듯, 최초 생성 템플릿들이 모두 Interface Builder 를 이용하는 것들 뿐이다. 물론 xib 파일을 text 로 편집 가능하지만 그리 유용하지는 않다.

Interface builder 를 이용하지 않았을 시 장점.
- 개발툴로 Interface Builder 를 열 필요가 없다.
(생성정보 및 클래스 정보, 프로퍼티 정보를 확인하려고 Interface Builder 를 열 필요가 없다, Interface Builder를 배울 필요가 없다)
- 생성자로 init 을 이용할 수 있다. InterfaceBuilder 의 경우엔 initWithCoder


1. 우선 View Base Application 을 만든다
2. App-Info.plist 를 열어서 Main nib file base name 항목 삭제

3. 프로젝트에서 xib 파일 삭제
4. main.m 파일을 열어 UIApplicationMain 함수 4번째 인자를 AppDelegate로 변경

5. AppDelegate.m 파일을 열어 객체들을 직접 생성

6. Clean 후 Build 이후 개발




[Objective C] NSMutableDictionary

1. Value 가 nil 이면 insert가 안됨 : count 를 이용해 분기를 태울 경우 문제가 발생할 소지가 있음

NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setValue: nil forKey: @"Foo"];


해당 소스에서 dic 에 값이 세팅 되지 않음. 이런 좀 황당할때가. Value 가 nil 일 경우에 setting 하지 않는점

참고로
[dic setObject: nil forKey: @"Foo"];
에서는 Exception 이 발생함
         attempt to insert nil value (key: Foo)



2. setValue 와 setObject 의 차이는 key 에 string 을 쓰는지 아무거나 쓸 수 있는지 차이인듯

- setValue:forKey: 는 NSKeyValueCoding 프로토콜의 구현체인데 다른 클래스에서는 프로퍼티 세팅할때 이용할 수 있으나 딕셔너리에서는 안되는듯  
- KVP 에 대해서는 애플문서를 참조


[Xcode] tip & trick

1. Cmd-Option-Up to switch between the .m and .h files.
2. Press Tab to accept the current completion.
3. Cmd + Double Click on a symbol to see the definition of a symbol
4. Option + Double Click on a symbol to see the documentation for that symbol
5. Cmd-Shift-E to expand the editor view to the full height of the window.
6. Cmd-Shift-D to Open Quick feature
7. #pragma mark foo / #pragma mark - 
    as a way to organize methods in your source files. "foo" as bold, "-" as seperator
8. // TODO: Some task that needs to be done.
    shows up this method list box
9. Cmd-[ and Cmd-] to indent and unindent selected text.
10. Cmd-/ to automatically insert "//" for comments. 

Xcode 의 단축키는 어찌 이리 손에 안익는지. ;;

1 2 3 4