본문 바로가기

OBJECTIVE-C

(13)
UUID 키체인(Keychain)저장 iOS5부터 사용되던 UUID 값은 보통 서버와 연동하여 기기를 식별하는데 쓰인다. 그런데 이 UUID값이 기기의 고유값은 맞지만 생성할때마다 값이 바뀌어 앱을 처음 실행할때 저장해 두고 불러오는 방식으로 쓰인다.하지만 앱을 삭제할 경우 앱내 저장된 값도 같이 삭제되니 이를 방지하기 위해 기기내 저장소인 키체인(Keychain)을 이용한다.(키체인에 저장된 값도 공장초기화할경우에는 사라진다.) 키체인 API의 경우 Security.framework에 정의되어 있다고는 하지만 사용하기가 까다로워 애플에서 KeychainItemWrapper 라는 클래스를 제공한다. (Download)하지만 이 파일이 업데이트 안된지 좀 된 모양이라 ARC를 지원하지 않는다.프로젝트에서 ARC를 지원하지 않도록 예외처리하거나..
iOS Font Name 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
Singleton Class 싱글톤 메소드 설정 방법 .m 파일에 아래 메소드를 추가해준다. + (HYCommon *)sharedCommon{ // static 변수는 한 번 선언되면 이후 메소드가 호출되어도 다시 nil로 세팅되지 않는다. // 즉, 한 번 불려지면 메모리상에 계속 남아 해제할 때까지 남아있는다. static HYCommon *sharedInstance = nil; // sharedInstance는 static 변수이기 때문에 sharedInstance가 nil이라는 뜻은 이 메소드가 처음 호출되었음을 의미한다. if (sharedInstance == nil) { @synchronized(self){ if (sharedInstance == nil) { //처음 호출되었기 때문에 메모리에 생성해준다. sharedInstance = [[HYC..
iOS7에서 (0,0)이 Status bar 가리는 문제 Technical Q&A QA1797Preventing the Status Bar from Covering Your ViewsQ: How do I prevent the status bar from covering my views in iOS 7? A: You need to use Auto Layout and apply a vertical spacing anchored to the "Top Layout Guide" of your view controller.Beginning with iOS 7 view controllers are displayed full screen, by default, as shown in Figure 1. This means they will cover the entire scre..
[Objective-C] Property 정리[출처] [Objective-C] Property 정리 [Property Attribute] readonly Property가 Immutable로 선언된다. @synthesize 선언 시 getter 만 생성한다. readwrite와 상호배타적이다. readwrite Property가 mutable로 선언된다. @synthesize 선언 시 getter, setter 생성 readonly 와 상호배타적이며 디폴트이다.. copy 객체의 복사본을 setter에 전달하고 복사본의 참조를 저장하게 setter를 선언한다. assign, retain 과 상호배타적이다. assign 원본의 포인터를 설정하도록 setter 선언한다. copy, retain 과 상호배타적이다. 아무 선언이 없을 시 assiign로 가정되나 몇 가지 경우에는 명시적으로 선언해야 한다. r..
[iOS] 스토리보드에서 코드를 이용한 View 전환에 관한 정리 1. 직접 View 를 띄우기 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];UIViewController *view = [storyboard instantiateViewControllerWithIdentifier:@"MyStoryBoardView"]; [self presentViewController:view animated:TRUE completion:nil]; 네비게이션 컨트롤러를 사용할 땐UINavigationController *navi = [storyBoard instantiateViewControllerWithIdentifier:@"MyStoryB..
[퍼옴]iPhone custom camera overlay (plus image processing) : how-to [duplicate] Many image sharing apps available today from the App Store use a custom camera instead of the standard camera picker provided by Apple. Does anyone know any tutorials or tips for creating a custom camera? iphone objective-c cocoa-touch ios5 uiimagepickercontroller share|improve this question edited Nov 10 '11 at 2:20 Oliver 7,280947124 asked Nov 10 '11 at 0:15 Fred Collins 1,0131641 marked as du..
[퍼옴]iOS: 카메라 기능 구현을 위한 UIImagePickerController Cook Book iOS: 카메라 기능 구현을 위한 UIImagePickerController Cook Book iPhone용 카메라 프로그램 작성 시 도움이 될만한 몇가지 Tip을 살펴보도록 하자. 여러번 사진 촬영 기능을 구현하려면? (혹은, 기본 촬영 UI를 변경하려면?) UIImagePickerController의 기본 UI를 사용하면 사진 촬영을 한번 한 후 반드시 release 해주어야 한다. 즉, 연속으로 사진 촬영이 불가하다. 이를 해결하기 위해서는 cameraOverlayView 속성에 custom overlay view를 적용하여 기본 UI를 변경해주어야 한다. 다음 자료들을 참고하기 바란다. Camera Programming Topics for iOS - 기본적인 UIImagePickerControll..
애니메이션 효과 주기 UIImageView* aniImageView = [[UIImageView alloc] initWithFrame:self.view.frame]; aniImageView.animationImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"img0.png"], [UIImage imageNamed:@"img1.png"], [UIImage imageNamed:@"img2.png"], [UIImage imageNamed:@"img3.png"], [UIImage imageNamed:@"img4.png"], [UIImage imageNamed:@"img5.png"], [UIImage imageNamed:@"img6.png"], [UIImage imageNamed:@..
[퍼옴]멀티스레드의 메모리관리에 관한 팁. 안녕하세요. 네온이란 네이트온 어플 개발하고있는 아레나입니다.맨날 질문만 해대다가, 문득 멀티스레드상에서의 메모리관련을 한번 올리고자해서 감히 한번 글을 써봅니다.(추후 개발이 완료되는 시점즈음해서 제대로 포스팅 한번 하지요) 메신져 프로그램같은경우 실시간으로 네트워크에서 메세지를 받아서 파싱후, 분류뒤에, 각자에 맞는 db에 넣은후 각자 해당하는 뷰에가서 적용을 하는 뭐 이런일의 반복입니다. 따라서 기본 한개의 스레드론 엄두도 안나구요. 채팅창이 여러개일경우 중복되면 안되고, 채팅도중 쪽지도 보내야하고 가끔 원하면 문자도 보내야 하니 스레드가 많아질수밖엔 없습니다. 네트워크에서의 메모리 절약법은(다시말해 네트워크 부하를 줄이는 방법은) 따로 다루지 않고 아이폰 개발자 카페인 만큼, 아이폰에서만 집중해서..