UIColor 색상 비교 하기

작업을 하다보면 여러가지 객체에 대해 비교를 자주 하게 된다 문자가 같은지 숫자가 같은지 등등… 여기서 NSString나 NSNumber같은 객체는 단순히 == 연산자로 비교가 안되어 애플에서 관련 비교 메소드를 만들어줬다 하지만 UIColor같은경우 비교 메소드가 없어서 따로 만들어 사용해야 한다.

  UIColor를 카테고리로 확장해서 만들면 좀더 편리해진다

Xcode에 iOS 시뮬레이터 다른 버전 추가하기

Xcode를 설치하면 기본적으로 최신 iOS말고 다른 버전의 시뮬레이터로 테스트를 할 수 없다. 개발을 최신 OS하나에만 맞춰서 할 수 있다면 참 좋겠지만 어디 그러한가. 하위 버전의 호환성도 테스트를 해야한다. 이럴때는 하단에 Download Simulators…를 누르면 다른 시뮬레이터를 추가 할 수 있다.   설치하기 원하는 시뮬레이터의 좌측에 화살표를 누르면 다운로드가 시작되고 설치가 끝나면 시뮬레이터 선택 옵션에 [디바이스 (펌웨어 […]

Autolayout을 이용하여 뷰를 n등분 하기 [iOS]

내가 처음 아이폰 개발을 했을때는 매우 행복했다. 디바이스의 해상도가 320 * 480 한가지 해상도만 생각하며 작업하면 됬고 그때는 뷰를 그릴때도 그냥 20픽셀 떨어져있으면 20픽셀이라고 쓰면 됬었다. 지금은 조금 틀려졌다. 일단 아이폰만 한다고 하면 아이폰4s, 아이폰5, 아이폰6, 아이폰6+ 네가지 화면을 확인해야하고 아이패드까지 가면 화면은 더 늘어난다. 해상도도 다 틀려 20픽셀을 20픽셀이라고 쓰면 안되는 몸이 되어버렸다. 물론 […]

AFNetworking을 사용하여 iOS 디바이스의 네트워크가 WiFi인지 셀룰러 데이터인지 확인해보기

AFNetworking은 현재 깃헙에서 별이 가장 많은 Objective-c 프로젝트로 알고 있다. 그만큼 안정적이고 좋은 기능들을 손 쉽게 쓸 수 있다. 아마  AFNetworking 없다면 꽤 고생을 했을거같다.  앱을 개발하다 보면 이런 화면을 볼때가 있다. 만약 앱을 구동하는데 필요한 리소스가 크다면 사용자의 셀룰러 데이터 플랜을 모르는 이상 안내도 없이 데이터를 쭉쭉쭉 다 써버리는건 친절한 개발이 아니라고 생각한다. 이런 […]

내가 생성한 하위 객체에서 이벤트를 상위객체로 보내는 방법! – 3부 Block패턴

이번에 소개할 패턴은 Block패턴이다 애플 레퍼런스에서 소해주지는 않은 방법이고 혼자 개발을 하면서 애플에서 추천하는 Block 문법과 KeyValue 코딩을 반반 섞은 방법이다. 처음 이 패턴을 고민한건  MVC패턴을 통해 작업을 진행하고 있었다. 그러다 뷰컨트롤러 안에서 커스텀 뷰를 만들어가지고 작업을 진행하는데 뷰 안에 UI처리가 아닌 데이터 처리등이 섞이는게 싫어서 어떤 방법을 써볼까 고민하다가 뷰 안에 블록을 통해 객체를 […]

내가 생성한 하위 객체에서 이벤트를 상위객체로 보내는 방법! – 2부 NotificationCenter패턴

델리게이트는 A객체와 B객체가 강하게 묶여 객체가 여러개가 되면 관리가 힘이 들어진다. 예를 들어 결제 과정을을 본다면 결제 안내 페이지에서 금액이 2000원으로 나온다고 하고 여기서 쿠폰을 사용한다고 해보자. 쿠폰 선택화면 안에 프로모션 화면등 그 안에 2~3단계의 화면이 더 들어갈 수도 있다.  최종적으로 결정하는 화면과 제일 처음에 봤던 결제 화면간을 델리게이트로 연결을 하면 여간 복잡하고 귀찮은 일이 […]

내가 생성한 하위 객체에서 이벤트를 상위객체로 보내는 방법! – 1부 Delegate패턴

뷰에서 팝업창을 하나 만든다고 가정을 하자. 팝업창에는 여러가지 정보나 버튼이 있고 그 버튼을 누르면 팝업창을 생성한 상위 뷰에 선택한 메뉴가 보이는 구조라고 하면 이걸 어떻게 구현할까? 팝업을 생성한 뷰에서는 팝업창을 제어하기가 쉽다. 하지만 팝업창에서는 상위뷰를 제어하는게 생각처럼 쉽지는 않다. 이럴때 쓸수있는 패턴들이 있다. 대표적으로 Delegate 패턴을 시작으로 NSNotificationCenter, singletone, block, keyValue….등등  시간이 날때마다 하나씩 포스팅을 […]

XCode 빌드 에러

No matching provisioning profile found: Your build settings specify a provisioning profile with the UUID “xxx”, however, no such provisioning profile was found. 앱을 올리려고 아카이빙하는데 계속 프로비저닝이 맞지 않는다고 했다. 인증서를 삭제도 해보고 다시 만들어도 보고 하다 스택오버플로우 선생님에게 배운 문제로는 7.2문제여서 설정가서 해결보라는데 난 그냥 7.2.1로 업데이트하니까 해결됬다. 야호 참고 – 스택 오버 […]

애플 개발자 배포 인증서 갱신! [ AppleWWDRCA ]

애플 개발자 계정을 등록하고 키를 요청한후 인증서를 발급받고 등록을 하는데 인증서가 계속 유효하지 않은 인증서로 나오며 프로비져닝이 일치하지않는다고 빌드 에러가 생겼다. No matching provisioning profile found: Your build settings specify a provisioning profile with the UUID “xxxxx”, however, no such provisioning profile was found.   이거때문에 인증서도 계속 폐기하고 다시 등록하고 애플에 문의 전화를 했더니 […]

문자로 되어있는 날자 형식을 NSDate로 바꾸기

자료를 찾아서 사용하다 보면 날자만큼 포멧이 다양한 경우도 드물다. 이런 당신을 위해 애플에서는 NSDateFormatter란걸 만들어 두었다 얏호. 예제는 우주항공청에서 제공하는 27일간의 KP데이터를 사용하겠다 이 파일에는 날자가 “2016 Mar 16″형식으로 되있다. http://services.swpc.noaa.gov/text/27-day-outlook.txt  

  NSDateformatter에 들어가는 yyyy MMM dd 같은 형식에 대해서는 유니코드 기준을 따른다 http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns   예제 다운로드