본문 바로가기

Objective-C

[Objective-C] plist 간단한 사용법 출처 : http://blog.daum.net/shakalis/3 다음은 plist를 만들어서 내용을 읽어들인 후, 출력하는 예제이다. 1) 우선 새로운 plist를 생성한다.-> xcode의 [resources] 디렉토리에서 오른쪽 클릭-> [add] -> [new file] -> [resource] -> [property list] 2) 작성한 plist를 연다.key type value-----------------------------root dictionary 현재 예제에서는 array를 쓸 예정이므로 type을 dictionary가 아닌 array로 바꾼다.그리고 오른쪽 클릭을 하여 [add row]를 선택하여 데이타를 추가한다. key type value---------------------.. 더보기
[Objective-C] 자료형 변환 (NSNumber, int) 1. int => NSNumber int a = 1;NSNumber *temp = [NSNumber numberWithInt:a]; 2. NSNubmer => int NSNumber *temp = [NSNumber numberWithInt:1];int a = [temp IntValue]; 더보기
[Objective-C] CGRectContainsPoint 애니메이션 중인 Sprite를 터치했는지를 알아낼 수 있는 방법이 무엇이 있을까를 고민하다가발견한 함수. boundingBox를 사용하면 쉽게 가져올 수 있다. 사용법.CCSprite *sprite = [CCSprite spriteWitheFile:@"파일.png"];if( CGRectContainsPoint([sprite boundingBox], touchPoint)){ // 터치}else{ // 터치 안됨.} 더보기
[Objective-C] nonatomic 이란? 처음 아이폰 개발을 시작하면서 nonatomic 는 무슨 뜻인가에 대해서 의문을 가진 적이 있다.이게 귀찮음에 그냥 놓아두다가 알아볼 기회가 있었는데. @property (nonatomic 이런 식으로 쓰여지는데, 기본 속성은 atomic로 선언되어 지고, 이 경우는 lock, unlock을 반복한다. 반대로 nonatomic는 당연히 그걸 하지 않는 것이다. 멀티스레드 환경에서는 atomic를 사용하는 것이 좋겠다. 더보기
[Objective-C] assign, retain, copy 란? 처음 생각없이 objective c는 c를 공부한 사람에는 쉽다는 이야기를 듣고 아무 생각 없이 무턱대로 시작했었다. 그때 가장 문제가 된게 클래스 멤버에 대한 호출이 없다. 가져다 사용하고싶은데, 방법을 모르곘었다. 하지만, 모든 답은 인터넷에 있다. Objective-C 의 @property 에서 assign, retain, copy 의 차이질문 : @property 에서 assign, retain, copy 의 차이 답 : assign 은 그냥 값만 set / get 하는 것retain 은 set / get 할때 retain count 를 올려주고 내려주는 것copy 는 set / get 할때 pointer 가 아닌 value 를 주고받는 것 (단, 변하지 않는 값의 경우 copy 가 아닌 원래 값.. 더보기
[Objective-C] may not respond to 'may not respond to 블라블라 ' 에 관한 에러가 나온다면 함수 이름에 대하여 확인해 보거나.(거의 대부분 오타)혹은 헤더에 함수 선언이 되어 있는지 그리고 인자를 확인하다. 즉.... 1. 함수명 확인(철자).2. 인자까지 포함해서 함수 철자 확인.3. 헤더에 선언되어 있는지 확인. 즉...철자를 철저히... 더보기
[Objective-C] 랜덤 함수 arc4random 이라는 랜덤 함수가 objective c 에 있는데, 다른 곳에도 있는지 사실 잘 모르겠다.일단 랜덤 함수라면 c/c++ 에 익숙한 사람이라면 rand() 함수가 익숙 할 것이다. 하지만 rand()가 사실상 정말로 랜덤하게 값을 가져 오지 않는 다는 것을 알것이다. rand()가 이뤄질 때 생성된 테이블에서 정해진 값을 뽑아 오는 것이니까. 해서 srand(time(NULL))와 같은방식으로 랜덤 테이블을 초기화 해주어야 rand() 함수가 진정 랜덤의 기능을 가질 수 있는데 또한 1초안에 srand(time(NULL))로 초기화 해도 다시 rand() 함수를 호출하게 되면 의미가 없어 지는데, (예를 들어 for문에서 호출된다던지....) arc4random 이 친구는 그런거 필요.. 더보기