반응형

iOS 312

iOS swift 델리게이트 패턴

델리게이트 패턴 :객체지향 프로그래밍에서 하나의 객체가 모든 일을 처리하는 것이 아니라, 할 일 중 일부를 다른 객체에 넘기는 것. 일반적으로 GUI기반 프로그래밍에서 일반적으로 사용되는 패턴. ex)이벤트 리스너. 7.1 텍스트필드 기본적인 기능은 델리게이트 패턴 없이도 사용할 수 있지만, 입력값을 제어하는 등의 고급 기능을 구현하고 싶을 때에는 델리게이트 패턴을 적용해야함. ex) 특정 문자열의 입력 배제, 입력 가능한 문자열의 길이 제한 등. 텍스트 필드에 델리게이트 패턴을 적용하려면 다음 2가지 작업 필요. 1) 텍스트 필드에 대한 델리게이트 프로토콜을 구현. 프로토콜의 이름: 항상 해당 객체의 클래스명 + delegate로 이루어짐. ex) UITextFieldDelegate 2) 텍스트 필드의..

ios swift 로컬 알림 -UserNotification framework

로컬 알림 - iOS 스케줄러에 의해 발송된다. 앱 내부에서 미리 메시지를 구성한 후 발송될 시각을 iOS스케줄러에 등록해 두면 해당 시각에 맞추어 자동으로 발송된다. 앱 실행 중보다는, 앱 종료할 때, 혹은 앱이 백그라운드 상태로 진입할 때 등 사용자의 관심으로부터 멀어지는 상호아에서 앱에 대한 주의환기를 목적으로 사용하는 것이 좋다. iOS10 버전 이상부터는 UserNotification framework 이용 UILocalNotification 객체 = > 구 버전 접두어 UN 기존의 알림 관련 객체에서는 로컬알림과 서버 알림을 위한 객체가 나누어져있었지만, UserNotification framework 에서는 통합적으로 구현 가능. 로컬알림과 서버 알림의 차이는 단순히 구분값에 지나지 않음. ..

ios swift 사용자에게 메시지를 전달하는 방법

Ch6. 사용자에게 메시지를 전달하는 방법 1) 메시지창(알림창) 2) 로컬알림 3) 서버알림(푸시알림) 1) -> 앱이 실행 중일 때만 동작 2), 3) -> 푸시 메시지 기능(로컬 노티피케이션, 푸시 노티피케이션) - 로컬푸시 , 서버 푸시 로컬 푸시: 앱 내부에서 특정 프로세스에 의해 등록된 메시지를 iOS가 전달하는 방식 별다른 장비나 준비가 필요 X 서버 푸시: 별도의 서버를 통해 APNs(Apple Push Notification Service)라는 애플 고유의 메시징 시스템에게 보낸 메시지가 네트워크를 통해 전달되는 방식 여러가지 장비와 준비과정이 필요. -> 다른 책에서 설명. [ 메시지 알림창 - UIAlertController ] 알림창(화면 중앙에 표시됨, 나란히/ 3개이상:버튼목록처..

ios swift 객체를 사용하여 값을 주고 받기

AppDelegate 객체를 사용하여 값을 주고 받기 AppDelegate 인스턴스에 저장해둔 값은 앱을 종료하기 전까지 유지됨. 하지만 앱을 종료하면 사라져 버림. 반영구적으로 값을 저장해두어야 하는 값에 사용하기에는 다소 부적합. UserDefaults 객체를 사용하여 값을 주고 받기 코코아 터치 프레임워크에서 제공하는 객체임. 이 객체를 이용하면 앱을 삭제하기 전까지는 저장된 값이 반영구적으로 유지된다는 장점. 이 객체에는 비교적 단순하면서도 값이 유지되어야하는 로그인 여부나 간단한 설정 정보 등을 저장하는 경우가 많다. 출처: 꼼꼼한 재은씨의 swift 기본편 p339~

ios swift 새로운 화면으로 값을 전달하는 방법

새로운 화면으로 값을 전달하는 방법 1) 값을 받을 새로운 화면을 스토리보드에 추가하고, 여기에 맞는 클래스 파일을 작성하여 둘 사이를 연결. (이를 편의상 VC2라고 부른다) 2) 스위프트 코드를 사용하여 VC2에 대한 인스턴스 참조를 얻어오거나, 인스턴스 참조가 없는 경우 인스턴스를 생성. 3) 전달하고자 하는 값을 인스턴스의 적절한 프로퍼티에 대입. 이 때 프로퍼티는 미리 정의 되어 있어야. 4) 화면 전환 VC1 -> VC2 VC2 -> VC1 반대방향으로 값을 전달하고자 할 때에는 값의 성격을 고려해서 처리해야 함. 소실되어도 상관 없는 값이라면, 단순히 값을 직접 주고받는 동기방식을 사용. 하지만, 만약 소실되어서는 안되는 값이라면, 값을 직접 주고 받는 대신 값을 보관해둘 수 있는 곳을 찾아..

ios swift 화면 전환 과정에서의 값 전달 방식(동기, 비동기)

뷰 컨트롤러 사이에 값을 주고 받는 방식 2가지 1) 동기방식 - 뷰 컨트롤러에서 다음 뷰 컨트롤러로 값을 직접 전달하는 방식 주로 영속적으로 값을 저장할 필요가 없는 화면 전환에 사용된다. ex) 목록 형태의 정보를 표현하는 테이블 셀 -> 클릭하면 상세페이지로 넘어가 세부 데이터를 보여줌. 2) 비동기방식 - 공통저장소를 만들어 뷰 컨트롤러에서 여기에 값을 저장하고 -> 화면을 이동하면 -> 다음 뷰 컨트롤러에서 이 저장소를 열어 다시 값을 꺼내오는 공유 방식. (화면 전환과 값의 전달이 따로 이루어진다.) 주로 지속적으로 값을 저장할 필요가 있는 화면 전환에 사용됨. ex) 로그인 정보 처리 로그인 성공했을 때 저장소에 해당 로그인 정보를 등록해놓고 화면을 전환. 뷰 컨트롤러를 이동할 때마다 로그인..

ios swift 전처리메소드 (Pre-process method)

전처리메소드 (Pre-process method) :세그웨이를 실행하기 전에 값을 저장해둘 필요가 있거나 , 혹은 경고창을 띄워주는 등의 처리를 해야 할 경우 전처리 메소드에 해당 내용을 작성해 놓으면 그 내용이 세그웨이가 실행되기 전에 자동으로 실행된다. prepare(for segue: UIStoryboardSegue, sender: Any?){ ... } 주의점: 호출 주체 = 내가 아님. 내가 구현해 놓으면 시스템이 호출하는 방식(필요한 시점에) 즉, 내가 호출하고 싶을 때 임의로 호출 못함. ->두 개의 매개변수 1) 메소드를 호출한 세그웨이 객체 2) 세그웨이를 실행하는 트리거에 대한 정보 사용자가 세그웨이에 연결된 버튼을 터치했을 경우, 혹은 다른 방법으로 세그웨이를 실행할 경우 세그웨이가 ..

반응형