전체 글93 Swift 확장(Extensions) 복습 : 상속은 본질적으로 성격이 비슷한 타입을 새로 만들어 데이터를 추가하거나 기능을 변형시켜 사용하는 것을 의미 확장 (Extension) 클래스/구조체/열거형에 모두 가능하며 extension 키워드를 사용 현재 존재하는 타입에 기능(메서드 형태)을 추가해 사용하는 것을 의미, 수평 확장 본질적으로 기존의 메서드 테이블 외 따로 메서드를 추가하는 것 기존 메서드 재정의는 불가능 단, @objc 키워드를 사용하면 가능해지긴 함 확장이 정의되기 전 생성된 경우에도 기존 인스턴스에서 새 기능 사용 가능 장점은 애플이 미리 만들어놓은 클래스/구조체/열거형 같이 원본 소스 코드에 대한 엑세스 권한이 없는 유형을 확장해 내가 원하는 메서드를 사용할 수 있도록 구현이 가능함 (소급 모델링 retroactive .. 2023. 8. 1. Swift 타입캐스팅(Type Casting) is연산자 (type check operator) 타입에 대한 검사를 수행하는 연산자 A is B : B는 A의 인스턴스인지 타입 확인하는 것 as 연산자 Person() -> Student() -> Undergraduate() as? / as!(강제) : 다운캐스팅 as? / as!(강제) => 다운캐스팅 Undergraduate 인스턴스를 생성하는데, 아래 코드와 같이 상위 클래스 Person으로 타입을 지정해 선언했던 것의 타입을 Undergraduate 타입으로 바꾸는 것을 의미 let person: Person() = Undergraduate() if let newPerson = person as? Undergraduate { // } as : 업캐스팅 Bridging(브릿징) : 서로 호환되.. 2023. 7. 31. 클래스의 상속, 초기화, 생성자 상속의 의미 성격이 비슷한 타입을 새로 만들어 데이터를 추가하거나 기능을 추가 및 변형해 사용하는 것 상속하는 문법 : class 새로운 클래스명 : 상속하고자 하는 클래스명 {} 상위 클래스에서 존재하는 멤버를 변형하는 것은 재정의라고 함, override 키워드 사용해야함 Swift에서는 다중 상속은 불가능 class 선언 시 앞에 final 키워드를 붙이면 상속이 불가능하게 만들 수 있음 변수 앞에 final 키워드를 붙이면 재정의 불가의 의미 클래스 용어 정리 기본(Base) 클래스 : 다른 어떤 것도 상속받지 않은 클래스 부모(Parent) 클래스 | 슈퍼 클래스 | 상위클래스 자식(Child) 클래스 | 서브 클래스 | 하위 클래스 재정의 : 상위 클래스의 변수를 변형하는 것을 의미함, 저장 .. 2023. 7. 31. Swift 간단한 앱을 만들 때 알면 좋은 기초 문법들 이미지 넣는 방법 Assets 폴더에 사용하고자 하는 이미지 넣기 [코드 내 이미지를 불러와 사용하는 방법] #imageLiteral() 이미지 값을 넣는 방법으로 코드 내 UI로 직관적이게 이미지를 확인 할 수 있음 UIImage(named: String) 이미지의 이름을 활용해 넣는 방법 사용자 입력 받기 readLine() 사용자의 입력을 받아 해당 값으로 처리할 수 있는 것 JavaScript의 window.prompt()와 유사한 것으로 볼 수 있음 2023. 7. 26. XCode 단축키 모음 줄맞춤 단축키 Command + A(전체선택) => Control + I Command + Shift + Y => Debug 창 Command + Shift + L => Library Control Option Command Enter => Assistent 2023. 7. 26. Swift 코드로 알아보는 싱글톤(Singleton) 패턴 싱글톤 패턴이란? 메모리상에 유일하게 1개만 존재하는 객체를 설계하는 것을 의미 싱글톤 패턴이 필요한 이유 앱 구현시 유일하게 1개만 존재하는 객체가 필요한 경우에 사용 실제 UIScreen.main 처럼 apple이 싱글톤 패턴으로 만들어 놓은 것을 활용해 사용하게 됨 class Singleton { static let shared = Singleton() // 데이터 영역에 유일한 객체의 주소가 담기게 됨 var id = 123 private init() {} } // 접근하는 순간 lazy하게 동작하여 메모리에 올라감 Singleton.shared object1 = Singleton.shared object1.id = 126 Singleton.shared.id // 126 object3 = Sing.. 2023. 7. 26. 객체지향 프로그래밍 이해하기 - 클래스와 구조체편 객체지향 프로그래밍 의미있는 데이터 묶음으로 만드는 것 객체지향 4대 특징 추상화 : 모델링 | 실체들의 공통적 특성을 뽑아내서 클래스로 정의하는 것 캡슐화 : 데이터 캡슐화 | 연관이 있는 속성과 메서드를 하나의 클래스로 묶어서 활용하는 것 은닉화 : 캡슐화를 하면 접근제어자를 사용해 객체 외부에서 객체 내부 데이터의 접근 통제가 가능함 상속성: 재사용성, 확장 | 부모 클래스의 속성과 메서드를 자식 클래스가 그대로 물려받는 것 다형성: 사용편의, 동적바인딩 | 하나의 객체가 여러가지 타입의 형태로 저장할 수 있고, 다양한 메서드의 형태로 동작 가능함 오버라이딩, 오버로딩 클래스와 인스턴스의 관계 클래스는 붕어빵 틀 붕어빵 틀에 재료를 넣고 만들어내는 것이 인스턴스 재료를 무엇을 넣느냐에 따라 팥붕어빵.. 2023. 7. 26. import UIKit이 필요한 이유 import UIKit Xcode에서 Playground만 생성해도 기본 코드로 들어있는 위 코드! swift 언어만을 가지고는 할 수 있는게 굉장히 한정적이기 때문에 앱을 만들때 반드시 필요한 기능들(런루프, 멀티쓰레드, 네트워크 등등)이 들어있는 Foundation Framework를 불러와 사용하는 것이다. UIKit UIKit은 Foundation을 포함하고 있는 개념 터치, 모션, 키패드 입력과 같은 사용자의 상호작용을 처리 카메라, 디바이스 API 뷰, 윈도우 관리, 시스템뷰와 뷰 컨트롤러를 제공 프린트, PDF 변환 API UI Animation iOS Architecture, iOS SDK | 4 Layer COCOA Framework : 앱 개발 기초 및 필수적인 기능들 (UIKit도 여.. 2023. 7. 12. Xcode 프로젝트 만들고 단순 텍스트 변경 앱 만들어보기! 목표 : 새로운 프로젝트를 만들고 Library에서 버튼과 텍스트를 추가한 뒤 버튼이 클릭 되었을 때 바뀌도록 해보기 1. New Project로 화면만들고 iOS => App 선택 후 Next 버튼 클릭 2. new project Setting 화면 입력 3. 화면 생성 후 Project Navigator에서 Main 클릭 시 아래 앱화면 같은 스토리보드 등장 3-1. control + option + command + enter 단축키로 코드탕인 Assistant 창 열기 4. Library 열고 Label과 Button 하나씩 스토리보드에 끌어오기 * Library 열기 : 우측 상단에 + 버튼 클릭 또는 단축키 command + Shift + L * font 크기 및 버튼 색상 변경 등은 우측 상.. 2023. 7. 12. 이전 1 ··· 5 6 7 8 9 10 11 다음