본문 바로가기

전체 글

(132)
[iOS] Protocol 학습 및 delegate패턴 사용해보기 프로토콜이란? 기능의 조각 또는 특정 직무를 입히는 다른 요구사항들과 메서드 프로퍼티들의 청사진이다. => 프로토콜을 채택하는 타입은 이런 프로퍼티와 메서드를 가지는걸 보장합니다 라는 자격증과 비슷하다. => 프로토콜은 타입을 묶는 용도로도 사용하고 타입간의 결합도를 낮추기 위해도 사용한다. [특징] - 프로토콜은 열거형, 클래스, 구조에 의해 채택될 수 있다. - 프로퍼티는 get인지 get set인지를 구분해주며 메서드는 이름과 매개변수 및 반환타입까지만 지정하- 여 본문은 구현하지않는다. - 프로퍼티 선언지 let선언이 안되는이유 중 하나는 연산프로퍼티는 let으로 설정할 수 없다. - getter는 무조건 가져야하며. set만 설정하면 variable with a setter must also h..
20220303 / D15 / 노티피케이션센터 예제코드 만들기 및 viewDidLoad에서 super메서드를 호출해야하는 이유 오늘학습내용 LifeCycle 이해하기 및 학습활동 viewDidLoad및 그외의 로드메서드들에서 super 메서드를 생성해줘야하는 이유 NotificationCenter 이해하기 학습활동에서 배운내용 옵저버를 중단안하고 view를 pop하면 메모리해제가되지않을 수 있어서반드시 해제 해줘야한다. 그런데 최신앱 환경에는 그런점이 개선되겠지만 구버전에는 그런부분을 신경을 써줘야한다. viewDidLoad는 화면과 동떨어질 수 있다라는 말은 데이터는 viewDidLoad에 로드 해두었다가 필요할때 사용할 수도 있는거라서 그런의미에서 얘기한거였다. navigation으로 넘어가서 dimiss를 하면 전화면으로 이동이 안되고 modaility로 넘어가서 pop을 하면 창이 내려지지않는다 이유는 같은 속성을 가지고..
20220228 / D14 / struct&class 및 singleton 및 RC에 대해서.. # 싱글톤(Singleton)이란? [정의] 싱글톤 클래스는 하나의 인스턴스를 사용하며 인스턴스화할 필요없이 객체에 접근하는 방법이다. [특징] 프로세스당 클래스의 인스턴스는 하나만 있을 수 있다. 싱글톤의 객체는 해당 클래스 접근이 전역으로 제공된다. (static) 인스턴스에 대한 액세스는 클래스 메서드를 통해 전달되므로 개체를 만들 필요가 없습니다. 우리의 Singleton 클래스는 우리가 일반 Cocoa 클래스로 만든 SingletonObject라고 하며 NSObject의 하위 클래스입니다. 싱글톤 인스턴스를 반환하는 팩토리 메서드의 이름은 규칙에 따라 sharedClassType 형식을 갖습니다. [사용목적] 싱글톤은 복잡한 소프트웨어 문제를 해결하기 위한 디자인패턴이다? [장점] 초기화를 한번..
20220225 / D13 / 화면전환(navigation&modality) 구현 및 데이터공유 + Alert구현 # modality 방식 스토리보드 ViewController의 indentifer Inspector로 들어가서 identifier를 기입한다. (본인으로 지정된 class명으로하면 구별이 쉽다) 첫번째 ViewController class내에서 이동하고자하는 secondViewController의 인스턴스를 생성하는 함수를 만든다 실행을한다. (만약 버튼을 클릭시 이동시키고 싶다면 버튼을 끌어와 @IBAction 함수내에 코드를 구현해도 좋을것같다.) // firstViewController에서 작성한 코드이다. func moveSecondViewController() { guard let secondViewController = self.storyboard?.instantiateViewControll..
20220224 / D12 / KVO와 Notification의 장단점 및 Init과 self에대한 궁금증 - Reference - https://docs.swift.org/swift-book/LanguageGuide/Initialization.html#:~:text=Default%20Property%20Values,in%20this%20chapter. - https://www.hackingwithswift.com/example-code/language/what-is-key-value-observing](https://www.hackingwithswift.com/example-code/language/what-is-key-value-observing) - https://leechamin.tistory.com/505](https://leechamin.tistory.com/505) # KVO [정의] - kvo란..
20220222 / D11 / auto 레이아웃 맛보기... 오늘학습내용 navigation bar 학습 autolayout 코드로작성할수있는방법은 3가지? Navigation View Controller 계층적으로 구성된 Content를 순차적으로 보여주는 container view controller stack구조로 구현되어있다. - navigation stack 계층 구조 탐색으로 앱 content를 보여주기에 적절하다 한번에 한 child view controller의 content만 보여진다. tree구조처럼 상위 카테고리에서 점차 하위 카테고리로 넓어져 가는 구조를 표현한다. 다시 상위 카테고리로 돌아가기 위해서는 가장 최근에 보여진 VC부터 역순으로 거쳐가야된다. 즉 LIFO(Last In First Out) 특성의 stack구조가 이를 구현하기에 적..
[Swift] Class와 struct 중 어느것을 선택해야할까 ? - Reference - https://developer.apple.com/documentation/swift/choosing_between_structures_and_classes Apple Developer Documentation developer.apple.com [정의] - 프로그램 코드의 빌딩블록이되는 유연유연한 범용 구조이다. NOTE - 다른언어와 달리 언터페이스 파일을 만들지않고 사용하며 다른코드에서도 적용이 가능하다. # 클래스와 구조체중 어떤걸 사용해야할까 ? [두 타입중 하나를 선택하기위한 방법에 대한 애플의 권장사항] - 기본적으로 구조를 사용해라(+구상하는 코드의 정체성을 모르겠을때) - Objective-C 상호 운용성이 필요할때 클래스를 사용해라. - 모델링 중인 데이터의 I..
[Swift] 타입(Type Casting)캐스팅이란? - Reference - https://docs.swift.org/swift-book/LanguageGuide/TypeCasting.html Type Casting — The Swift Programming Language (Swift 5.6) Type Casting Type casting is a way to check the type of an instance, or to treat that instance as a different superclass or subclass from somewhere else in its own class hierarchy. Type casting in Swift is implemented with the is and as operators. These tw docs..
[SW] MVC패턴이란? MVC Design Pattern이란? [정의] 디자인 패턴 중 하나이며, 앱의 개체를 Model, View, Controller로 3가지로 나누어 앱에서 수행하는 역할과 객체가 서로 통신하는 방식을 정의한다. [특징] Model layer, view layer라고도 부르기도 한다. MVC는 Cocoa 애플리케이션을 위한 좋은 디자인 패턴이다. 전역 아키텍쳐와 관련이 있고 앱에서 수행하는 역할따라 개체를 분리한다는점에서 상위수준패턴이다. 객체지향 프로그램은 MVC디자인 패턴을 디자인에 적용함으로써 여러가지 이점을 제공한다. [이점] 재사용 가능성이 높고 인터페이스가 더 잘 정의되는 경향이 있다. 전반적으로 변화하는 요구사항에 더 잘 적응한다. MVC 디자인패턴을 가진 앱은 다른 앱보다 쉽게 확장할 수 있..
[SW] 아키텍쳐와 디자인패턴의 개념과 차이점 이해하기 SW 아키텍쳐란?? [정의] 소프트웨어 시스템의 기본 구조와 그러한 구조 및 시스템을 만드는 분야를 말한다. 시스템의 조직이다. 이 조직에는 모든 구성요소, 서로상호작용되는 방식, 작동하는 환경, 소프트웨어 설계에 사용되는 원칙이 포함된다. 큰그림이다, 소프트웨어 설계 프로세스의 대상과 위치이다. 수행할 작업, 높은 수준에서 비즈니스 요구사항을 구현하는 방법을 결정합니다. 서버가 배열되는 방식, OK,서버의 위치 등등 [역사] 1968년 Edsger Dijkstra와 1970년대 초 David Parnas의 연구에 그 기원을 두고 있습니다. Carnegie Mellon의 Mary Shaw와 David Garlan은 1996년 Software Architecture: Perspectives on the E..