목록iOS (106)
大器晩成
let으로 선언한 객체 (불변 참조)let으로 객체를 선언하면, 해당 객체의 참조 자체는 변경할 수 없습니다. 즉, 다른 객체를 할당하거나, 해당 객체가 가리키는 인스턴스를 다른 곳에 재할당하는 것은 불가능합니다. 하지만 객체의 내부 속성이나 메서드를 변경할 수 있는지 여부는 객체의 타입에 따라 달라집니다.class MyClass { var value: Int init(value: Int) { self.value = value }}let myObject = MyClass(value: 10)myObject.value = 20 // 가능한 작업: 객체의 속성 값 변경myObject = MyClass(value: 30) // 오류: 'myObject'는 let으로 선언되..
싱글톤 패턴은 앱 개발에서 특정 클래스나 구조체의 단일 인스턴스만을 생성하고, 이를 전역적으로 공유하기 위해 사용되는 디자인 패턴입니다. (특정한 유일한 데이터/관리 객체가 필요한 경우 사용) -> 유일하게 1개만 존재하는 객체입니다. // 구현 방법class 객체명 { static let 변수명 = 객체명() private init() {}}class Singleton { // 타입 프로퍼티(전역변수)로 선언 static let shared = Singleton() // 자신의 객체를 생성해서 전역변수에 할당 var userInfoId = 12345 private init() {} // 해당 코드가 없을 경우 새로운 객체를 생성하는 것도 가능}Singleton.share..
class SomeClass { private var name = "이름" func nameChange(name: String) { self.name = name }}var s = SomeClass()// s.name // private으로 선언변 속성은 접근 불가s.nameChange(name: "윈터") // 메서드를 통해서만 수정 가능외부에서, private으로 선언된 속성/메서드에 접근불가하므로 name 속성은 외부에서 볼 수 없습니다.(접근 불가)코드 내부의 세부 구현 내용을 숨기는 것이 가능합니다. (은닉화/캡슐화) 접근제어가 필요한 이유애플이 자신들이 원하는 코드를 감출 수 있습니다.코드의 영역을 분리시켜서, 효율적 관리 가능합니다.컴파일 시간이 줄어듭니다..
대괄호를 이용해서 접근가능하도록 만든 문법을 가리킵니다.배열 - array[인덱스]딕셔너리 - dictionary[키]var array = ["Apple", "Swift", "iOS", "Hello"]array[0]array[1]// 내부적으로 대괄호를 사용하면 어떤 값을 리턴하도록 구현이 되어 있어서 가능한 일// 인스턴스.0// 인스턴스.method() =====> 이런 형태가 아닌 // 인스턴스[파라미터] =====> 이런 형태로 동작을 가능하게한 문법 (대괄호로 메서드의 기능을 대신) (인스턴스) 서브스크립트(Subscripts)의 직접 구현 - 클래스, 구조체, (열거형)// 인스턴스 메서드로써의 서브스크립트 구현subscript(파라미터명: 파라미터 타입) -> 리턴타입 { g..