분류 전체보기 333

iOS swift 이미지 객체로 인한 메모리 점유가 걱정될 때

이미지 객체로 인한 메모리 점유가 걱정될 때 UIImage(contentsOfFile:) 생성자를 사용해서 이미지 객체를 생성하는 것이 좋다. 이 생성자를 사용하여 생성된 이미지 객체는 캐싱되지 않는 특징이 있다. 이미지 데이터를 매번 다시 읽어와야 하므로 성능이 약간 저하될 수 있지만, 자주 호출되는 이미지가 아니라면 이 방식을 사용하는 것이 메모리 관리 면에서 효율적. var img = UIImage(contentsOfFile: ) 캐싱이란? 캐싱 = 데이터베이스나 파일 입출력 시스템 등에서 불러온 데이터를 메모리 등 고속으로 접근할 수 있는 곳에 임시로 저장해두고 (이를 캐시라고 함), 이후 동일한 데이터를 읽어야 할 때 임시 저장소에서 데이터를 읽어오는 처리 방식 vs. 위와 반면에, 메모리 걱정..

iOS swift 테이블 뷰 컨트롤러

테이블 뷰가 루트 뷰로 정의되어 있다. 목록 형식의 데이터를 화면에 표현하는 데 사용된다. 화면 전체가 목록으로 이루어진 인터페이스를 구현할 때 사용하는 컨트롤러. ex)iTunes앱의 재생목록 iOS환경설정(설정 정보 관리) 카테고리 선택 / 작성된 메모의 목록 보기 테이블 뷰 컨트롤러의 계층구조 1. 테이블뷰 컨트롤러 2. 테이블뷰 3. 테이블뷰 셀 (여려개의 행) 4. 콘텐츠 뷰 우리가 실제로 화면에서 보는 목록 각 행의 내용은 저마다의 콘텐츠가 콘텐츠뷰 내부에 적절히 배치된 결과물임. 섹션: 하나의 테이블 뷰 내에서 셀들을 그룹으로 묶을 수 있는 단위. 하나의 테이블 뷰 내에서도 섹션에 따라 다른 주제로 분류된 데이터를 보여줄 수 있다. ex)음악목록 - 추천음악목록, 내가 최근에 들은 음악 목록..

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 반대방향으로 값을 전달하고자 할 때에는 값의 성격을 고려해서 처리해야 함. 소실되어도 상관 없는 값이라면, 단순히 값을 직접 주고받는 동기방식을 사용. 하지만, 만약 소실되어서는 안되는 값이라면, 값을 직접 주고 받는 대신 값을 보관해둘 수 있는 곳을 찾아..