전체 글 (31) 썸네일형 리스트형 iOS - Defer문 Defer문: 코드에 실행싯점을 Scope가 종료되는 때로 지연시킴. Syntax defer { statements } defer문을 호출하면 블록에 포함된 코드가 바로 실행되지는 않고, defer문이 호출된 스코프에 실행이 종료될 때까지 연기됨. defer문 활용: Defer문에 실행은 함수가 종료될때까지 연기. 런타임오류가 발생하서 프로그램이 비정상적으로 종료되는 경우를 제외하고, 항상 함수가 종료되는 싯점에 실행됨. 특별한 이유가 없다면 하나의 defer문만 사용하는 것이 좋음. iOS - Closure 최적화 Closures최적화 - Github에는 많은 사람들이 자신의 iOS앱 코드를 Public으로 올려놓아서 저희가 참고로 활용할 수 있는데요, 그런데 많은 코드들을 보면 아래와 같이 $0, $1, $2... 표시로 된 클로저 형태를 발견 할 수 있습니다. 저도 처음 접했을 때는 저게 클로저라는 걸 몰랐었는데요, 클로저 최적화를 적용한 코드는 많은 개발자들이 사용하기 때문에 꼭 알아두어야 한다고 생각합니다. 예: products.filter { $0.contains(“Pro”) } 그럼 클로저 최적화를 위한 5가지 규칙을 알아 봅시다. 1. 파라미터 형식과 리턴형을 생략한다. - 컴파일러가 자동으로 클로저의 반환타입을 정의. 컴파일러가 구문내의 반환값을 찾아 해당하는 타입으로 전환. - 파라미터의 타입은 컴.. iOS - JSON Parsing 오늘은 iOS앱 개발에서 네트워크 통신시 필수로 알아야 할 JSON(Java Script Object Notation)에 대해 알아 보겠습니다. JSON은 자바스크립트에서 인스턴스의 속성을 표현하기 위해 사용한 데이터 구조로, 데이터가 작고 간결해 모바일 앱에서 데이터를 주고 받을 때 많이 사용되고 있습니다. 그래서 최근에는 앱과 연동하는 API 서버는 주로 JSON 형태로 테이터를 내려주기 때문에 필수로 알아 두어야 한다고 생각합니다. JSON 구조를 한 번 살펴 보겠습니다. JSON 객체는 { 로 시작하여 } 로 끝납니다. 이 괄호 사이에 키와 값이 쌍을 이루어 들어가며, 이 구조는 Swift의 딕셔너리와 구조가 비슷합니다. { "name" : "홍길동", "age" : 30, "height": 17.. iOS - ARC, Weak, Unowned [소유 정책] 1. 모든 객체는 생성될 때 참조 카운트가 1이 된다. 2. retain 메세지를 보내면 참조 카운트가 1 증가한다. 이 메시지를 보낸 호출자는 객체를 '소유' 한다고 한다. 3. release 메시지를 보내면 참조 카운트가 1 감소한다. 이 메시지를 보낸 호출자는 객체의 소유권을 포기한다. 4. autorelease 메시지를 보내면 현재 사용 중인 오토릴리즈 풀 블록의 실행이 종료되는 시점에 참조 카운트가 1이 감소한다. 5. 참조 카운트가 0이 되면 객체의 메모리가 해제된다. [오토릴리즈 풀] 오토릴리즈 풀은 autorelease 메시지를 받은 객체가 해지되기 전까지 저장되는 공간이다. 이 공간에 저장된 객체들은 오토릴리즈 풀이 해제될 때 다함께 release된다. 각 스레드 하나에 오.. iOS - Cocoa Pods Cocoa Pods : 의존성 패키지를 관리하는 도구. 코코아팟을 사용하면 본인의 iOS앱에 외부 라이브러리를 쉽게 설치하는 것 뿐만 아니라 향후 버전까지 관리할 수 있는 정점이 있음. 외부라이브러리(dependent package)를 관리하는 도구. 설치 방법. 맥북에서 Terminal 열고 sudo gem install cocoapods 명령어로 cocoapods 설치. (맥북 비빌번호 입력) cd 프로젝트폴더주소 ls (리스트를 보는 명령어) pod init (pod file이 설치됨.) Example: pod file 밑에 pod “KRProgressHUD” 입력 ls pod install 다 설치 된 이후 흰색파일 실행. iOS - Custom Fonts 안녕하세요, 오늘은 커스텀 폰트를 추가하는 법을 알아보겠습니다. Xcode에서 제공하는 다양한 폰트들이 있는데요, 대부분의 폰트들이 포멀하고 딱딱한 느낌이라 저희가 직접 원하는 폰트를 넣어서 앱 디자인을 하면 앱 전체 분위기가 확 살아나는 장점이 있습니다. 순서는 아래와 같은데요. 바꿔서 실행해도 상관은 없습니다. 새폴더 추가 → Fonts → 본인이 원하는 폰트 파일을 넣어줌. Info 파일로 이동. → Information Property List 하위에 → Fonts Provided by Application 추가 → 하위에 Fonts갯수 만큼 아이템 수 추가 → 각각 원하는 이름 입력 해당 커스텀 폰트를 UI에 넣으면 됨. Swift - guard 문 안녕하세요, 오늘은 Swift에서 정말 자주 사용하는 Guard 문에 대해서 정리해 보았습니다. 제가 생각하는 Guard문의 장점은 if문과 달리 조건이 늘어날 수록 발생하는 코드 중첩을 줄일 수 있다는 건데요, 그래서 if 문 조건이 많이 중첩될 시 guard문을 사용합니다. 우선적으로 사용 문법(syntax)은 아래와 같습니다. 1.일반 문법: guard condition(Bool표현식) else { statements} 2. Optional Binding 문법: guard let name = optional expression(옵셔널 표현식) else { statements } statements Optional Binding 구현시, 주의할 사항은 if문에서는 저희가 else를 생략할 수 있으나,.. iOS - ImagePicker (이미지 피커) Image Picker는 UIImagePickerController 클래스를 사용하여 구현하는데요, 순서는 아래와 같이 진행하면 실수를 줄일 것 같습니다. 주의할 사항은 UIImagePickerController는 스토리보드로 생성하는 것은 안되며, 코드로만 생성이 가능합니다. 1. 이미지피커컨트롤러 인스턴스 생성. let imagePicker = UIImagePickerController() 2. 델리게이트를 self로 지정 imagePicker.delegate = self 3. Source Type을 지정 imagePicker.sourceType = .photolibrary ***카메라 사용과 포토 라이브러리 이용 등 여기서 source type을 선택해 주시면 됩니다. 4. 이미지피커컨트롤러를 출.. 이전 1 2 3 4 다음