목록Swift/Swift 기초문법 (75)
HIT해
프로토콜을 적용하는데 특정 class에만 적용을 하고싶다면extension 프로토콜명 where Self : 클래스명 {} 으로 구현할 수 있다! 프로토콜 조건부 적용 예시import Foundationprotocol Naming{ var name : String {get set} }class Cat : Naming { var name: String init(name: String) { self.name = name }}class Dog : Naming{ var name: String init(name: String) { self.name = name }}// 자기 자신이 만약 고양이다extension Naming where Se..
Toggle이란?Bool 변수를 간단하게 변경하는 함수 var isDarkMode : Bool = falseisDarkMode.toggle() // true
Singleton 패턴이란?스위프트에서 객체를 생성하는 대표적인 방법론애플리케이션이 시작될 때 객체의 인스턴스를 최초 1회만 생성하여 사용하는 디자인 패턴이다!메모리를 하나만 쓰는 것이 특징이다. 일반적인 객체 생성 사용 예시class Pet{ }let Pet1 = Pet()let Pet2 = Pet() 이렇게 생성했을때 Pet1과 Pet2는 다른 메모리 주소를 할당받는다.그럼 메모리를 두배로 차지하기에 비효율적이라고 말할 수 있다. Singleton 패턴 사용 예시final class Pet{ static let shared = Pet() private init(){}}let Pet1 = Pet.sharedlet Pet2 = Pet.shared 이때 Pet1과 Pet2는 같은 ..
Open 이란?프로젝트 내 어디서든 사용가능하다다른 외부 모듈에서도 상속 및 오버라이드가 가능하게 한다예) 오픈소스 및 외부 라이브러리 구조, 애플 프레임워크uibiewcontroller 클래스명 Cmd + click 을 하면 open 키워드를 볼 수 있다. 상황예시1. 다른 폴더안의 Utilsclass Utils{ class func sayHello(){ print("하이") }} 2. import하여 사용하고자 함import Utils // 파일명class ViewContoller : UIViewController { override func viewDidLoad(){ super.viewDidLoad() Utils.sayHello() }} ..
Range란?범위를 나타내는 함수다! 사용예시let myRange = 0...2 // 0 , 1, 2let mySecondRange = 0.. 배열에 적용하는 방법이다let myFriends = ["짱구". "철수", "유리", "멩구"]let tempRange = 0.. 범위에 대한 기본적인 문법이기에 헷갈리지 않고 잘 익혀서 사용하자
이전 포스팅을 참고하면 도움이 될 것 같다!https://100percent-me.tistory.com/entry/Swift-%EA%B8%B0%EC%B4%88%EB%AC%B8%EB%B2%95-30-class-func-vs-static-func [Swift 기초문법 - 30] class func vs static func사용예시class Friend{ // 1. func sayHi(){ print("안녕!") } // 2. class func sayBye(){ print("바이바이") } // 3. static func sayHoho(){ print("호호") }}// 1.// 호출하려면 인스턴스를 만들어야한다// 클래스를 메모리에 올려100percent-me.tistory.com class MyClas..
Zip이란?두가지 컬렉션을 합쳐 쌍으로 묶어준다! 사용예시let friends = ["짱구" , "철수" , "유리"]let pets = ["흰둥이", "사람", "토끼"]let friendAndPetPairs = zip(friends, pets)friendAndPetPairsfor aPair in friendAndPetPairs { print("\(aPair.0), \(aPair.1)")} 튜플로 묶여있기에 아래와 같이 결과가 나온다 배열 크기가 맞지 않는다면??import Foundationlet friends = ["짱구" , "철수" , "유리", "훈이"]let pets = ["흰둥이", "사람", "토끼"]let friendAndPetPairs = zip(friends, pets)friend..
JSON 통신이나 AF TCA 에서 자주 사용되는 Equatable이 무엇일까.항상 사용하라고만해서 사용했지 무슨 의미로 사용되는지 몰랐었다. Equtable이란Swfit 표준 라이브러리에 정의된 프로토콜로 타입이 동등성 검사를 지원하기 위해 채택하는 프로토콜이다.즉 두 인스턴스가 같은지 아닌지를 비교할 수 있게 해준다.이 프로토콜을 채택한 타입은 == 연산자를 구현해야 하며 이는 두 인스턴스가 동일한지 확인하는 데 사용된다. Equatable의 기본 개념protocol Equatable { static func ==(lhs: Self, rhs: Self) -> Bool} 자동으로 != 연산자도 제공된다. Equtable 프로토콜 구현struct Person: Equatable { let na..