컴파일러 제어 구문 컴파일러 제어 구문을 사용하면 컴파일에 영향을 줄 수 있음 조건부 컴파일 블록 #if, #elseif, #endif 등의 키워드가 있음 컴파일에 조건에 맞는 코드는 컴파일 단계에서 포함시키고, 그렇지 않은 코드는 컴파일 하지 않음 #if 로 시작하여 #endif 로 끝남, 다른 조건은 #elseif를 사용 #if (컴파일 조건 1) // 컴파일 조건 1이 참이면 컴파일될 코드 #elseif (컴파일 조건2) // 컴파일 조건 1이 거짓이고, 컴파일 조건 2가 참이면 컴파일될 코드 #else // 컴파일 조건1과 컴파일 조건2가 모두 거짓인 경우 컴파일 될 코드 #endif 각종 환경 확인 함수와 유효한 전달인자 값 조건부 컴파일 블록의 사용 #if os(Linux) print("이 프..
열거형 추가/수정이 불가능 제한된 선택지를 주고 싶을 때 정해진 값 외에는 입력받고 싶지 않을 때 예상된 입력 값이 한정되어 있을 때 값을 가질 수도 가지지 않을 수도 있음 각 항목이 그 자체로 고유의 값이 될 수 있음 원시값(raw value) 형태로 실제 값을 가질 수 도 있음 연관 값(associated values)을 사용하여 공용체라고 불리는 값의 묶음도 구현 가능 기본 열거형 열거형의 선언, 할당, 변경 enum School { case primary case elementary case middle case high case college case university case graduate } enum car { case bus, taxi, car, truck } // 값 할당하고 변경하기..
앱 소개 - 아! 그때 샀으면... 라고 말할 때 샀으면... - 주식을 대상으로 과거 시점과 현 시점을 비교하는 과거 주가 확인 어플리케이션 - 국내외 시장지표(환율, 코스피, 코스닥, 다우존스, snp500, 나스닥 정보 제공) - 증시 뉴스 제공 최초 기획 메인 기능 - 주가지수, 종목, 가격 검색 - Push Notification - e-나라지표 API 사용 (소비자 물가지수 정보 반영) - Naver API (경제 정보 전달) - 주식 외 ETF, 비트코인 정보 추가 서브기능 - 결과 공유 기능 - 종목 가격 세부 탐색(MDD, MDU, CAGR) - 종목 가격에 따른 다른 설명 전달(MDD 시점에 따른 경제 위기 안내 등) - Webkit 사용한 경제 단어 검색 정보 전달(MDD, 소비자 물..
https://modelinspring.tistory.com/61 [Swift/iOS] 타입캐스팅(1) - 타입 변환, 타입캐스팅, 데이터 타입 확인, 메타 타입, 메타 타입 타입 스위프트는 데이터 타입 안전을 위해서 서로 다른 타입끼리의 값 교환을 제한함 1. 기존 언어의 타입 변환과 스위프트 타입 변환 실패할 수 있는 이니셜라이져 // 실패 할 수 있는 이니셜라이져 v modelinspring.tistory.com 에 이어서 작성되었습니다 스위프트는 데이터 타입 안전을 위해서 서로 다른 타입끼리의 값 교환을 제한함 1. 기존 언어의 타입 변환과 스위프트 타입 변환 실패할 수 있는 이니셜라이져 // 실패 할 수 있는 이니셜라이져 var string:Value String = "000111222" var..
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로 타입을 확..
알람어플은 라이트모드, 다크모드 상관없이 검은색 테마를 유지하고 있기에 다크모드 지원이 되지 않게 설정을 해주었다 다크모드 지원 설정은 아래 포스팅에서 간단하게 설명되어있다 https://modelinspring.tistory.com/51 [swift/iOS] 회원가입 페이지 만들기(1) - 요소와 기능 확인, 프로젝트 만들기, 다크모드 지원 설정, 회원가입 페이지를 만들어볼 예정이다 페이지에 들어갈 요소와 기능부터 생각을 해보자 회원가입 페이지에 들어갈 요소 1. 아이디 2. 비밀번호 3. 이메일 4. 친구 초대 추천인 아이디 5. 휴대폰 번 modelinspring.tistory.com Tab Bar 설정을 마무리 지어주자 Tab Bar의 Background 색상은 위의 사진 처럼 뒤에 내용이 있으면..
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 =..
- Total
- Today
- Yesterday
- 클로저 축약
- 회원가입
- ASAuthorizationAppleIDCredential
- inout 파라미터 메모리 충돌
- ios
- SWIFT
- CoreData
- 캡쳐리스트
- 클로저 강한 참조
- 클로저표현
- core data
- identity Token
- 클로저
- 강한 참조 순환
- weak
- 디자인패턴
- Persistent Container
- 메모리 안정성
- 강한참조순환
- 토큰저장
- 자동클로저
- authorizationCode
- Entity
- unowned
- Delegate 패턴
- object
- escaping closrue
- context
- autoclosure
- Core Data Stack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |