메소드에 이어서 프로퍼티에 대해 공부를 해봅시다. 오늘도 프로퍼티 (Properties) 늘 그래왔듯 정의 부터 보죠! 프로퍼티는 클래스(class), 구조체(struct), 열거형(enum)과 관련한 값 입니다. 종류로는 저장 프로퍼티 와 연산 프로퍼티 등이 있습니다. 프로퍼티에는 대표적으로 두가지 종류가 있어요. 이외에도 타입 프로퍼티 등 더 있긴하지만 오늘은 저장 프로퍼티를 먼저 보려고 합니다. 하나씩 파헤쳐 봅시다! 저장 프로퍼티 (Stored Properties) 이름 그대로 값을 저장하고 있는 프로퍼티 입니다. let(상수) 또는 var(변수) 키워드를 선언해서 사용할 수 있어요. 예제를 보면서 해볼까요? 눈으로 보는것보단 Playground에 같이 따라하는게 더 이해가 잘갑니다 :) 저장프로..
문제 라이브러리 설치할때마다 DEPLOYMENT_TARGET 버전이 변경되서 빌드를 할때마다 각 라이브러리의 타겟 버전을 변경해줘야 하는 번거로움이 있었습니다. 해결 Podfile에서 아래 내용을 추가해줍니다. // 이 내용을 추가해주세요. post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' // 5.4' pod 'SnapKit', '~> 5.0.0' // 여기 추가 post_install do |installer| installer...
프로젝트를 처음 만들어봤을때 가장먼저 맞이해주는 override 많이들 보셨죠 ? 아무 생각없이 넘어갔는데 오늘은 override에 대해 한번 파봅시다!! 오버라이드 (override) 일단 공식문서의 내용을 요약해서 먼저 한번 볼까요 상위클래스로부터 상속받은 메서드, 프로퍼티들을 하위 클래스에서 재정의하는 것 살짝 알듯 말듯 하네요. 말보단 코드로 먼저 보시죠 !! 눈으로 보는것 보다 Playground에 따라 쳐보시면 이해가 더 잘갑니다 먼저 Student라는 class를 만들어볼게요. class Student { func sayHello() { print("안녕 나는 학생이야") } } 호출을 하면 어떻게 나오는지 볼까요 ? let student = Student() student.sayHello(..
코드로 레이아웃을 잡아보고 있는데 수정사항이 있을때마다 Run (Cmd + R)을 해야하는 번거로움이 있습니다. 하지만 SwiftUI의 기능중 하나를 써서 실시간으로 변경된 레이아웃을 볼수 있게 할 수 있습니다 !! 결과물 먼저 보시죠! 솔깃한 주제지만 요구사항이 있어요 ! 요구사항 Xcode 11 macOS Catalina iOS 13 ⚠️ 참고 Mac OS: Monterey Xcode: 13 이상 위 조건에 해당한다면 시뮬레이터를 iOS 15버전이상으로 지정해주어야 preview가 실행이 됩니다. 요구사항이 갖춰졌다면 시작해보죠! 기존 레이아웃을 코드로 작성했던곳에 아래 코드를 따로 넣어줍니다. Preview를 보는 코드는 아래와 같아요 (설명도 참고 !) // 전처리 #if DEBUG import ..
ATS(App transport Security)는 iOS 9 버전 이후부터 보안에 취약한 네트워크를 차단시키게 된다. 즉 https 가 아니라면 불러오지 못합니다. 현재 웹뷰 연결시켜야 하는 작업중에 맞는 도메인 주소로 들어가도 아무 화면이 나오지 않았는데 이는 아래와 같이 해결할 수 있다. 1. 프로젝트 내 info.plist 2. info.plist 내용 수정 information Property List에 ' + ' 버튼 클릭 추가된 리스트의 Key값에 App Transport Security Settings 추가 App Transport Security Settings에서 Allow Arbitary Loads 추가 Allow Arbitary Loads의 Value값에 YES 입력 프로젝트 Run..
오늘은 아래와 같은 코드에 대해 알아보려고 합니다. func swapTwoValues(_ a: inout T, _ b: inout T) { let tempA = a a = b b = tempA } 바로 제네릭 ! Generic (제네릭) 사전적 의미 Generic: 포괄적인 Generic의 장점 ? 타입에 유연하게 대처할수 있다. 제네릭으로 구현한 기능과 타입은 재사용에 용이 하고, 코드 중복을 줄일 수 있습니다. 글로 보면 어떤게 편한지 모르니 코드로 보시죠! 먼저 Generic을 사용하지 않고 상황을 들어볼게요. 1) Int를 받는 타입 func swapTwoInts(inout a: Int, inout b: Int) { let temporaryA = a a = b b = temporaryA } var..
Generic을 공부하면서 아래와 같은 코드를 봤다. func swap(_ a: inout Int, _ b: inout Int) { // code } Inout ? 그것도 파라미터 자리에? 뭐지.. 오늘은 Inout 파라미터에 대해 알아보자!! Inout parameter 입출력 파라미터 라고도 불리며, 함수에서 직접 파라미터 값에 접근할 수 있도록 해주는 기능이다. 선언 방법 func 함수명(name: Inout Type) 이런식으로 적어준다. func 함수명(_ 파라미터이름: inout 타입, _ b: inout Int) { } 그리고 인자값을 파라미터로 보내기 위해서는 인자값 앞에 '&' 를 붙여준다. 함수명(&변수, &변수) 일반 함수와 차이. 아래의 예시를 봅시다. 일반적인 함수 func sw..
- Total
- Today
- Yesterday
- Combine: Asynchronous Programming with Swift
- swift property
- Swift final
- CS 네트워크
- Swift Error Handling
- Swift 알고리즘
- Swift 프로그래머스
- Swift 내림차순
- Swift joined
- ios
- Swift
- iOS error
- Swift RIBs
- Swift init
- Class
- swift programmers
- Swift 프로퍼티
- swift reduce
- RTCCameraVideoCapturer
- Swift Leetcode
- 2023년 회고
- 원티드 프리온보딩
- swift (programmers)
- swift protocol
- swift 고차함수
- removeLast()
- RIBs tutorial
- Swift joined()
- Swift inout
- Swift ModernRIBs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |