목록Objective-C (9)
ㄷㅣㅆㅣ's Amusement
Xcode/iOS/Objective-c에서 이미지 자르기.Image Crop in Xcode/iOS/Objective-C 1. ImageCropViewController 1) 이미지를 자를 수 있는 뷰 컨트롤러를 만든다. 1) Making View Controller for Image Crop like below. 2) 이미지 자르기 할 영역만 음영처리가 빠져있고, 이미지는 원형으로 자름. 2) We should shade except cropping region. and We're gonna crop in circle. 3) Core Graphics for circular masking. - 이미지를 사각형으로 자를 것이라면 전혀 문제가 없겠지만, 대부분의 이미지 크롭 프로젝트에서는 원형으로 자르기 때..
[iOS/Objective-C]에서 thread를 순차적으로 처리하기.Thread starts when the other Thread ends [on iOS/Objective-C] 여러가지 방법이 있겠지만.... 세마포어를 사용하면 간단하다.There are so many way to do. but, you had better to use semaphore. 1. Create semaphoredispatch_semaphore_t sema = dispatch_semaphore_create(0); 2. Do Threaddispatch_async(......, ^ { // Do something ........ dispatch_semaphore_signal(sema);)}; 3. Wait for semapho..
Here is the simplest way to encrypt/decrypt using CCCRypt on iOS오늘은... iOS에서 CCCRypt를 이용하여 encrypt/decrypt하는 간단한 방법에 대해서 포스팅해볼까 합니다. I had to decrypt json string which is encrypted AES128/CBC-mode/NoPadding. but in iOS, there's no "NoPadding" option, you will hesitate which option you use. 우선... 이 프로젝트를 시작한 계기는.. 서버에서 AES128로 CBC모드에 NoPadding으로 암호화된 json string을 내려주기 때문에 이것을 맞춰주려고 한거였는데, 이노무 CBC..
iOS에서 UIButton으로 작업하다보면 UIControlState에 따라 bacground color도 변경해야 할 때가 있는데, background image는 interface builder에서 변경 가능하지만 bg color는 그렇지 못하다. 따라서 bg clolor를 설정할 수 있는 category를 한개 더 만들어보도록 한다. (Objective-C 코드) 1234567891011121314151617181920#import "UIButton+BgColor.h" @implementation UIButton (BgColor)- (void)setBgColor:(UIColor *)color forState:(UIControlState)state{ // 버튼 백그라운드 이미지를 채우기위한 더미 뷰...
오늘은... iOS에서 지문인식을 통한 인증방법에대해 포스팅을 해봅니다. 우선... 지문인식 다이얼로그는 LAContext로 띄울 수 있는데.... 이것을 쓰면 "enter passcode"를 눌렀을 때 "User fallback"에러메시지가 떨어진 후 passcode입력할 수 있는 방법이 없기 때문에.. 나는 이를 우회할 수 있는 다른 방법을 쓰기로 한다. 1. flow 1) 키체인을 설정하되, 읽을 때 touch id(지문인식)을 요구하도록 설정한다. 2) 키체인을 읽어들이는 쿼리(query)를 실행한다. 1) keychain 설정.12345678910111213141516171819202122232425262728293031323334353637383940414243444546- (void)setK..
오늘은 간단한데 오래 전부터 objective-c를 썼던 사람이나, 6개월 미만의 사람들이 자주 하게되는 이상한(?)코딩에 대해서 포스팅한다. 1. 간단한 초기화 - NSArray, NSSet, NSDictionary를 초기화 할때에 옛날 개발자들이나, 아니면 옛날 책을 가지고 공부한 사람들은 대부분 다음과 같이 한다.1234567- (void)viewDidLoad { [super viewDidLoad]; NSArray *menuBtns = [[NSArray alloc] init]; NSSet *menuSet = [[NSSet alloc] init]; NSDictionary *menuDic = [[NSDictionary alloc] init];}Colored by Color Scriptercs 매우 맞다..
1. code block을 받는 함수 - Java/Android에서는 interface로 listener를 만들어 결과를 받는것이 일반적이지만, objective-c/iOS 에서는 코드블럭이나 델리게이트를 통해 주고받는것이 일반적이다. 다음 예제코드는 iOS 앱에서 캘린더에대한 접근 권한을 요청하는 함수이다. 캘린더 접근권한을 요청하면 사용자에게 팝업이 제공되는데, 이때에 사용자가 "확인"버튼을 누를때까지 메인 스레드가 정지해서는 안되기 때문에 코드블럭을 넘겨받아 처리하였다.123456789101112131415161718192021222324252627- (void)requestAccessToEvents:(void (^)(BOOL bGranted))complete { BOOL needsToRequest..
iOS에서 캘린더에 접근하는 방법. 1. header - @import EventKit; 2. Getting Permission. 123456789101112131415161718192021222324- (void)requestAccessToEvents:(void (^)(BOOL bGranted))complete { BOOL needsToRequestAccessToEventStore = NO; EKAuthorizationStatus authorizationStatus = EKAuthorizationStatusAuthorized; if ([[EKEventStore class] respondsToSelector:@selector(authorizationStatusForEntityType:)]) { autho..
Objective-c에서... Category라는 개념이 나오는데, 이건 뭐... 라자냐 코드가 되는 것을 방지해주기 위해서 매우 중요한 메카니즘인거는 다 알겠고... 아무도 얘기해주지 않아 직접 해봐야만 하는 것중에... 이때에도 오버라이딩이 되는가?? 임. 단순 호기심에 시도해봤는데... 잘됨 ㅋㅋㅋ 그런데... 상속과 다르게 카테고리는... 원본 클래스에 덮어씌우는 개념이기 때문에 이렇게하면 대략 좋지가 않다. 프로젝트 전체에서 그 클래스가 하는동작이 서로 상이하게되면... 이건 스파게티나 라자냐 코드보다 더 큰 문제가 야기될 수 있기 때문. 물론 아무리 그렇다고 해도 꼭 써야할 때는 써야지!! 하지만 정당한 이유 없이 쓰면 코드리뷰하다가 귓방맹이 맞을수도 있으니 주의!! 또 주의하자.