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   예제 다운로드

사용자의 위치 승락 여부 확인 [iOS]

위치 기반 앱을 개발하면 당연히 사용자의 위치를 얻어오는 요청을 한번 이상 하고 이걸 거절할 경우에 따른 예외처리도 매우 중요하다. 사용자의 위치값에 대한 승인여부는 다음과 같은 메소드를 호출하면 확인할 수 있다.

리턴값은 CLAuthorizationStatus 형식으로 오며 헤더파일을 보면 다음과 같이 온다.

    kCLAuthorizationStatusNotDetermined -> [0] 한번도 인증 요청을 안했을 경우. 사용자는 아직 이 앱이 […]

NSArray에서 한글,영문순으로 정렬하기

NSSortDescriptor를 사용하면 숫자, 영문, 한글 순서대로 정렬이 된다. 오늘 요청을 받은게 한글, 영문 순서로 정렬되었으면 하는 요청을 받았다. 인터넷에서 찾은 소스는 배열안에 NSString만 받는걸 기준으로 되있어서 해당 소스를 블록문을 사용해서 안에 있는 오브젝트를 비교하는 형식으로 변경하였다. NSArray 안에 다른 객체별로 클래스를 맞춘후 비교하면 문제 없이 정렬되는것을 확인하였다.

  참조 글 – https://gist.github.com/acidsound/5072229