1. 오류처리란 오류처리는 프로그램이 오류를 일으켰을 때, 감지하고 회복하는 일련의 과정 2. 오류의 표현 스위프트에서 오류는 Error라는 프로토콜을 준수하는 타입의 값을 통해 표현 Error는 요구사항 없는 빈 프로토콜 오류를 표현하기 위한 타입은 이 프로토콜을 채택함(주로 열거형) //스마트폰에서 발생할 수 있는 에러 enum phoneError: Error { case notConnectedToInternet case notSupportedOnDevice case outOfMemory } 위 코드에서 Error 프로토콜을 채택한 것을 통해 오류처리를 위한 열거형임을 알 수 있음 오류의 종류를 예상하고, 오류 때문에 다음에 행할 동작이 정상적으로 진행되지 않으면 오류를 던져줌 오류를 던져줄 때는 t..
스위프트는 데이터 타입 안전을 위해서 서로 다른 타입끼리의 값 교환을 제한함 1. 기존 언어의 타입 변환과 스위프트 타입 변환 실패할 수 있는 이니셜라이져 // 실패 할 수 있는 이니셜라이져 var string:Value String = "000111222" var integerValue: Int? = Int(stringValue) print(integerValue) // Optional(111222) stringValue = "AAA000111" integerValue = Int(stringValue) print(integerValue) // nil 2. 스위프트 타입캐스팅 스위프트의 타입캐스팅은 인스턴스의 타입을 확인하거나 자신을 다른 타입의 인스턴스인양 행세할 수 있는 방법 is와 as로 타입을 확..
Tab Bar, Table View, Collection Veiw, DateFormatter를 연습을 위해 아이폰 기본 어플을 따라서 만들어보려고 한다 메뉴구성부터 보면 하단 Tab bar가 "세계 시계", "알람", "스톱워치", "타이머"로 되어 있다 테이블 뷰가 하단까지 도달하지 않으면 검은 바탕으로 투명해보이지만, 하단까지 도달하면 불투명한 모습을 확인할 수 있다 선택된 뷰는 orange 컬러(?)로 설정 되어 있다 어플리케이션 실행 시 보여줄 스토리보드 설정하기 프로젝트 생성 후 기본으로 설정되어 있는 Main 스토리보드 말고, 새로운 스토리보드를 생성해서 시작을 해보려고 한다 Command + N 또는 File - New - File 메뉴를 통해서 새로운 파일 생성창을 띄워준다 iOS - U..
거의 다 한 것 같다.. 빨리 탭 바와 내비게이션으로 넘어가고 table view도 넣고싶다.. 여러가지 버튼 Action으로 연결하고 tag 사용하기 약관 전체동의하기 버튼과 아래 각 버튼들의 action을 총 5개 만들어서 해결할 수 도 있지만, 하나의 액션으로 묶고 tag를 사용해서 구별할 수 있도록 해보려고 한다 일단 전체동의하기 버튼의 IBAction을 connect 한 다음에, 해당 메서드를 각 버튼들에 연결해준다 그 다음 각 버튼들의 Attributes Inspector에서 tag를 각각 0~4로 입력해주고 코드를 아래와 같이 작성한다 @IBAction func allAgreementButtonClicked(_ sender: UIButton) { let agreementArray = [all..
저번 포스팅에 이어서.. 휴대폰 번호 전송버튼을 클릭했을 때, 조건을 파악해서 액션을 주고 싶다 생각해본 조건은 간단히 숫자로만 구성된 10,11자리 이어야 하는데 이것은 description을 체크할 때 그대로 했던 작업이다 코드 반복을 피하고 함수로 따로 빼내고 싶지만 현재 이 회원가입페이지를 너무 오래 붙잡고 있기도 하고.. 해서 일단은 그냥 복붙형태로 진행하려 한다 ... 이렇게 해도 되냐고 물어보았는데 안될 건 없지만 코드리뷰할 때.... ㅠㅠ(생략) 아무튼... 버튼을 눌렀을 때 alert 띄우기 일단 alert 띄울 때 필요한 함수를 아래와 같이 입력해주자 입력할 곳은 IBAction 을 입력하는 곳에 넣어주면 된다 func wrongPhoneNumberAlert() { let alert =..
계속해서 아이디 입력창 아래 Label을 바꿔서 보여주는 기능을 생각해볼 예정이다 이전 포스팅에서는 label이 없어졌다가 유저가 Text Field창과 상호작용하면 Label이 나타나게 되고, Edting 할때마다(changed) 메서드를 작동시키게 연결하는 것까지 진행했다 text의 조건 확인하기(글자 수, 소문자, 정규표현식의 문자 조건 (알파벳소문자, 숫자, 길이)확인) 일단 idTextFieldTyped 함수 내의 코드들을 아래처럼 수정해주자 @IBAction func idTextFieldTyped(_ sender: UITextField) { idTextFieldDescription.isHidden = false // label 보여주기 let userWord = idTextField.text?..
회원가입 페이지를 만들어볼 예정이다 페이지에 들어갈 요소와 기능부터 생각을 해보자 회원가입 페이지에 들어갈 요소 1. 아이디 2. 비밀번호 3. 이메일 4. 친구 초대 추천인 아이디 5. 휴대폰 번호 6. 휴대폰 번호 인증버튼 7. 휴대폰 번호 인증번호 입력창 8. 약관 전체 동의 체크버튼 및 텍스트 9. 약관 필수 동의 체크 버튼 및 텍스트 10. 약관 선택 동의 체크 버튼 및 텍스트 11. 약관 자세히 버튼 눌러서 상세 내용 확인 12. 마지막 회원가입 버튼 이메일 인증도 받을 수 있고, 더 단축시킬 수 도 있겠지만 현실적인 수준에서 골라보았다 이제 기능을 조금 더 구체적으로 생각해보자 회원가입 페이지에 들어갈 기능 1. 아이디 최소 글자수 조건 확인(6글자이상, 영어, 숫자만 사용) 2. 비밀번호 ..
- Total
- Today
- Yesterday
- 자동클로저
- 토큰저장
- 캡쳐리스트
- 디자인패턴
- autoclosure
- Delegate 패턴
- Persistent Container
- unowned
- 회원가입
- authorizationCode
- CoreData
- Core Data Stack
- SWIFT
- weak
- object
- Entity
- 강한참조순환
- context
- ASAuthorizationAppleIDCredential
- core data
- 클로저표현
- 클로저
- 메모리 안정성
- 클로저 축약
- identity Token
- ios
- 클로저 강한 참조
- escaping closrue
- 강한 참조 순환
- inout 파라미터 메모리 충돌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |