전체 글 82

[Swift] 클로저 (Closure)

1. 클로저란?특정 기능을 담은 코드를 블럭으로 모아둔 것(Swift는 함수를 일급변수로 취급하므로 클로저 역시 매개변수로 활용이 가능) 1. 클로저의 3가지 모양 - 이름을 가지면서 어떤 값도 획득하지 않은 전역 함수의 형태- 이름을 가진면서 다른 함수 내부의 값을 획득할 수 있는 중첩된 함수의 형태- 이름이 없고 주변 문맥에 따라 값을 획득할 수 있는 축약 문법으로 작성된 형태 2. 기본 클로저 - 클로저를 사용하지 않는 경우 sorted 매서드 사용let names = ["scott", "azsha", "john"] func backwards(first: String, second: String) -> Bool { return first > second } let reversed: [String] ..

Programer/iOS 2017.02.28

#일상 #일일커밋 #TIL #스위프트프로그래밍

#일일커밋얼마전 Jayjin 님 블로그에서 일일커밋 포스팅을 보았다.나도 동기부여가 되어서 일일커밋에 동참하기로 하였고, 현재 텅텅 빈 github를 채워나가기로 했다.https://github.com/azsha/TIL #TIL일일커밋 첫번째 프로젝트는 TIL (Today I Learned) 이다.이 프로젝트는 자유롭게 일을 하거나 공부하다가 아는 것이 생기면 작성하는 공간이다.형식은 md파일로 작성할 예정이고 위키 형식으로 작성해 나갈 예정이다.git도 공부할겸.. 그리고 블로그 처럼 뭔가 꾸며야 한다는 압박감이 없어서 좋다. #스위프트프로그래밍iOS개발자 오픈채팅방에 계신 야곰님의 책이다. (정말 적극 추천한다.)스위프트에 개념에 대해 정말 깊이 공부할 수 있는 책인데, 이 책을 정독하면서 그동안 몰..

Life/Writing 2017.02.22

#일상 #멘토 #동기부여

제목을 해시태그 형식으로 바꾸어 보았다 ㅎㅎ #일상 #슬럼프 #무기력증 요즘 회사에서 때 아닌 슬럼프에 빠졌다. 무기력증까지 폭발!회사 사정이 어려워져 새로운 프로젝트는 시작하지 못하고, 기존 개발했던 소스들을 정리 중인데 불과 1년전 짠 소스 임에도 불구하고 정말 뒤죽박죽에 정리는 되지 않고, 억지로 구현하기 위해 더러워진 소스를 보면서 한숨 밖에 나지 않는다. 그러면서 현 시점에서도 지금 내가 제대로 개발하고 있는 것인가? 나쁜 습관을 계속해서 사용하고 있지는 않은가?거기다 늦게 개발자를 시작했는데 더 노력을 해서 많은 것을 익혀야 하는 것은 아닌가? 라고 생각하며 내가 이럴 때가 아닌데하며 무기력증은 점점 더 심해진다. #iOS오픈채팅방 #멘토 #초프 iOS오픈채팅방에서 초프라는 분이 있는데 무엇을..

Life/Writing 2017.02.01

[Swift] 이니시스 결재 모듈 관련 이슈 (아엠포트 소개, EUC-KR 인코딩 변경)

이번 프로젝트에 이니시스 결재 모듈을 추가하는 작업을 진행했습니다.이니시스 결재시 페이지로 파라미터 값(상품명)을 보낼 때 한글이 나오지 않는 부분이 있었습니다. 열심히 테스트헤보니 iOS (UFT-8) -> 이니시스 결재 처리 웹 (EUC-KR) -> 이니시스 결재 페이지 (UTF-8) 이런식으로 처리되는 것 같은데.. iOS(UTF-8) 에서 EUC-KR로 처리시 UTF-8에 있는 한글 코드가 EUK-KR 코드에 없기 때문에 누락되는 것을 확인했습니다.그래서 저는 UTF-8를 EUC-KR로 바꿔서 전달했더니 이니시스 결재 페이지에 이상한 글자가 나타는 것이었습니다. UTF8 -> EUC-KR 변환 코드 func stringToEuckrString(stringValue: String) -> String..

Programer/iOS 2016.12.01

[Swift] iOS앱 개발 전 반드시 알아야할 3가지 라이브러리

(초보주의....!) - 들어가며.. 기본 지식 없이 시작하시는 iOS개발자분들을 위해 iOS앱 개발 전 반드시 알아야 할 3가지 라이브러리를 소개합니다.주로 Swift위주이며 해당 페이지 README에서 잘 설명해주고 있으니 자세한 설명은 생략하겠습니다. :) 1. Alamofire 너무나 유명한 라이브러리입니다.RESTful API를 간단하게, 편하게 구현가능한 라이브러리입니다.다운로드, 업로드 등도 지원하고 있으며 이 라이브러리를 사용하면 쉽게 서버 통신을 구현을 할 수 있습니다. 2. ObjectMapper / SwiftyJSON 서버로 부터 온 JSON을 아주 간다하고 쉽게 모델로 바꿔주는 라이브러리입니다.데이터를 클레스나 구조체로 구현 했을 경우 ObjectMapper로 한번에, 아주 쉽게 변..

Programer/iOS 2016.11.11

[Auyolayout] 오토레이아웃 유용한 팁 모음

iOS 개발자 비성상토크에서 태완님 강의 중 유용한 팁! 1. 텍스트뷰에서 스크롤을 끄면 알아서 크기가 변경됨 텍스트뷰에 글이 채워질때마다 크기를 자동으로 늘이는 방법을 찾아왔었는데.. 스토리보드에서 scroll enable을 끄면 글자수에 마춰 크기를 자동으로 변경해줍니다. (저는 이걸 몰라서 항상 코드로 처리...) 2. 오토레이아웃을 사용해 애니메이션을 주려면 아래와 같이 두번 콜해주는 것이 좋다. self.view.layoutIfNeeded()animate(..){...}self.view.layoutIfNeeded() 3. iOS 8 이하에서 스택뷰를 사용하려면 FDStackView를 사용하면 된다! 4. 오토레이아웃 프레임에 맞추기 단축키 -> 커맨드 + 옵션 + = 5. 테이블뷰를 사용할때, ..

Programer/iOS 2016.10.24

[Swift] 옵셔널(Optional) 정리

저번주 토요일 iOS개발자 비정상토크가 있었습니다.토크 주제중 keyWindow님의 옵셔널 강의가 굉장히 유용하여 제 스타일대로 정리해보고자 합니다. 1. 옵셔널이란 무엇인가? - 스위프트의 특징 중 Safe에 해당 된다![Safe] : 옵셔널을 통해 안전한 코드 작성이 가능하다!PowerfulMorden - 간단히 말해 값이 있을수도 있고 없을수도 있다! - ??가 붙었을 경우 메모리 공간 안에 상자가 하나 더 있다고 생각하면 쉽다. 즉, 옵셔널은 상자안에 값이 들어가게되는 것, 만약 값이 없는경우는 상자 안이 비어 있다 할 수 있다. (nil을 할당할 경우) 만약 ?가 안 붙으면 옵션널이 없다는 상수, 즉 ?가 안 붙어 있으면 값이 없으면 절대 안된다! 2. 그럼 왜????????? 옵셔널을 사용하는..

Programer/iOS 2016.10.24

[Xcode8] cocoapod 업데이트 후 linker command failed with exit code 1 (use -v to see invocation) 에러가 나는 경우

맥북이 너무 느려져서 포맷하면 괜찮아 질려나 하고 포맷을 하고, 셋팅을 다시하던 중에 Xcode 에서 잘 되던 빌드가 안되는 것이었다.. 처음에는 SVN에 소스가 잘못되어 있는 줄 알았더니 framework 링크에 문제가 있었던 것이었다.framework를 지우고 cocoapod도 재설치 해봤지만 에러는 사라지지를 않고.. 열심히 삽질을 하던 중에 framework 폴더에 Pods.framework, Pods_MindCafe.framework 두개의 framework가 생긴 것을 발견하였다. cocoapod 구버전의 경우 Pods.framework 이고 신버전의 경우 Pods_MindCafe.framework 인거 같다. 구버전의 Target Membership 을 체크했다가 해제하고, 신버전은 체크 해..

Programer/iOS 2016.10.20

[Swift] Swift 3 올렸다가 Swift 2.3 다시 돌아온 삽질기

Xcode 8 로 업데이트 후 Swift 3으로 싹 바꾸려고 했는데 확실히 2.2 -> 2.3 보다 더 복잡하였다.(참고로, Xcode 7 에서 Xcode 8를 바로 받아 설치해도 덮혀씌여진다 -> 이걸 몰라서 엄청 헤맸다.) 도전 정신을 가지고 Swift 3으로 변환을 시도 하였으나..결국 내가 사용하고 있는 라이브러리가 Swift 3를 지원하고 있지 않아.. 2.3 버전으로 다시 되돌렸다.내가 작성한 소스는 SVN에서 되돌리면 되니 큰 문제는 없었지만..Xcode 8에서 계속해서 Swift 3이 아니라고 에러를 발생 시켰다... 일단 해결 방법은 아래 그림과 같이 Use Legacy Swift Language Version 를 Yes 로 변경해주면 된다. 만약 cocoa pod을 사용중이라면 coco..

Programer/iOS 2016.09.19