[iOS] CGFloat 와 Float 차이

실수를 사용할 때 보통 CGFloat 를 사용한다. 습관적으로 이걸 사용하면서도 이게 그냥 Float 이겠지.... 하면서 사용했다. 갑자기 호기심이 발동해서 찾아보았다. 32비트와 64비트에서 실수의 처리가 차이가 난다. 왜냐, 비트수의 차이로 처리할 수 있는 크기가 차이가 날 수 밖에 없다. 이에 대해 개발자가 신경을 쓰지 말고 사용할 수 있도록 해주는게 CGFloat 이다. 이것은 32비트에서는 Float 로 처리하고 64비트에서는 Double 로 처리한다. 앞으로 CGFloat 를 사용해야 겠다.

인생의 즐거움에 관하여

논어 제 1편 학이에는 즐거움이 나온다. 첫번째 배우고 때때로 익히면 이 또한 즐겁지 아니한가? 여기서 즐겁다에 '기쁠 열'자를 사용했다. 찾아보니 '기쁠 열'자의 뜻은 내면에서 솟아 올라오는 기쁨이다. 즉 혼자 느끼는 기쁨으로 볼 수 있겠다. 두번째 먼 곳에서 벗이 찾아온다면 이 또한 즐겁지 아니한가? 이때 즐겁다는 '즐거울 락'을 사용했다. '즐거울 락'은 사람간에 상호작용으로 기쁨을 느낄 때 사용한다. 즉 둘 이상이 느끼는 기쁨으로 볼 수 있다. 공자는 혼자 느끼는 기쁨을 최고로 치고 그 다음으로 둘이 느끼는 기쁨을 쳤다. 먼 곳에서 찾아온 벗에는 '벗 봉'을 사용했다. 왜 '벗 우'를 사용하지 않았을까? '벗 봉'은 뜻을 같이 하는 사이에 사용한다. 또는 한 스승 밑에서 배웠을 때도 사용한다고 한다. 즉 나이에 상관없이 마음에 맞는 사람을 중요시 했다는 것이다. 인생을 살아보니 그 말이 맞는 거 같다. 마음에 맞는 사람과 같이 있는 시간이야 말로 '즐거울 락'자를 사용할만 하지 않는가?

[iOS] SKSprite Kit 사용할 때 Swipe 추가하는 법

Swipe 를 사용할려고 했는데 일반적으로 추가했더니 안된다. 이걸 어쩐다.....ㅠㅠ 처음에 MyScene.m 에서 -(id)initWithSize:(CGSize)size {} 이 곳에 추가를 했다. 그래서 그런지 인식이 안된다. 가만히 생각해보니 Swipe는 View에서 작동되는게 아닌가? 그래 맞아 ...., View 에서 작동을 하지 Scene에서 작동하는게 아니지 않은가...ㅎㅎ 그리하여 -(void)didMoveToView:(SKView *)view {} 이 곳에 해보자.... 그전에 헤더 파일에 @interface MyScene : SKScene < UIGestureRecognizerDelegate >  추가해야지.... 이제 생성하고 설정을 추가하자 당연히 didMoveToView 안에 해야지 UISwipeGestureRecognizer *swipe = [[ UISwipeGestureRecognizer alloc ] initWithTarget : self action : @selector (swiepMethod:)]; swipe. direction = UISwipeGestureRecognizerDirectionLeft ; [view addGestureRecognizer :swipe]; 이제 swipeMethod 를 생성하면 됩니다. - ( void )swiepMethod:( UIGestureRecognizer *)reg {     NSLog ( @"swiepMethod" ); } 실행하시면 Swipe 하면 로그가 찍히는 걸 확인하면 성공입니다.

App 등록할 때 NO identities were available 에러 처리기

이미지
이전에 같이 개발한 후 등록할 때 위와 같은 에러가 났다. 관련 자료를 찾아보니 인증서 문제일 수 있다고 하여 인증서도 다시 발급 받았는데 결과는 같다. Xcode에서 계정 설정하는 부분에서 새로고침을 하면 수정된다는 것에 그대로 해보았는데 결과는 같았다. 처음부터 다시 곰곰히 생각해 보았다. 혹시 앱 등록 화면에 bundle ID를 잘못 등록해서 그런가? 그것도 역시 원인은 아니었다. 그리하여 수동으로  배포용 profile 파일을 생성한 후 그 파일을 Xcode에 등록하니까 정상으로 등록이 되었다. 다른 앱을 등록할 때 확인 해야겠다.

[iOS] 헤더 파일에 프레임워크 추가 하지 않고 적용시키는 방법

prefix.pch 란 파일이 있다. 이 파일의 내용에 헤더파일을 추가하면 별도로 지정하지 않고 사용할 수 있다. #ifdef __OBJC__     #import <UIKit/UIKit.h>     #import <Foundation/Foundation.h>     #import <AVFoundation/AVFoundation.h>     #import <iAd/iAd.h>     #import <SpriteKit/SpriteKit.h> #endif 위와 같이 추가하면  각 헤더를 헤더 파일에 추가하지 않아도  적용이 된다.

[iOS] Sound Effect 노드에 추가하는 방법

간단하게 추가하는 방법을 제공하고 있다. SKAction *goldSound = [ SKAction  playSoundFileNamed : @"done1.mp3"  waitForCompletion : NO ]; [ self runAction :goldSound]; 이 방법의 단점은 소리의 크기를 조절할 수 없다.

[iOS]화면 밑으로 가면 노드 제거하는 법

신규로 생성된 노드가 화면에서 사라지면 노드를 바로 제거해야 메모리 관리가 최적화가 된다. 이럴 경우에 사용하는 방법이다. -( void )didEvaluateActions {     [ self enumerateChildNodesWithName :nodeName   usingBlock :^( SKNode *node, BOOL *stop){         if (node. position . y < 0 ) [node removeFromParent ];     }]; }