목록Study/iOS (3)
조앤의 기술블로그
#1 iOS 개발에서 가장 중요한 패턴이다. 하나의 객체는 다른 객체를 자신의 대리자로 지정한다. 그리고 자신이 제공하는 일부 기능을 대리자가 대신 수행하도록 일부 위임한다. 즉, 기능을 처리할 객체를 델리게이트로 설정하고, 특정 이벤트가 발생할 때 이를 델리게이트에 의해 위임된 본래의 객체로 전달해주는 역할을 한다. delegate pattern의 대표적인 예는 테이블 뷰, TextField. 테이블뷰 항목을 선택했을 때, 실행해야 하는 기능은 천차만별. 테이블 뷰는 항목을 선택했을 때, 어떤 기능을 실행해야 하는지 모른다. -> 이 부분을 대리자가 대신 처리하도록 위임한다. delegate pattern에서는 두 개의 객체가 존재한다. 기능을 위임하는 Table View / 테이블 뷰의 일부 기능을 ..
guard let url = URL(string: picUrlStr) else { fatalError("Invalid URL") } do { let data = try Data(contentsOf: url) imageView.image = UIImage(data: data) } catch { print(error) } 네트워크 코드는 이런 식으로 구현하지 않는다. 메인스레드에서 실행. 메인스레드가 다른 기능을 실행하지 못한다. 모든 네트워크 코드는 백그라운드 스레드에서 실행해야 한다. 이 코드는 동기 API인데 네트워크 코드는 반드시 비동기 API로 해야한다. 밑에 부분을 삭제하고, let task = URLSession.shared.dataTask(with: url) { (data, response, ..
https://github.com/WenchaoD/FSCalendar WenchaoD/FSCalendar A fully customizable iOS calendar library, compatible with Objective-C and Swift - WenchaoD/FSCalendar github.com iOS앱을 개발할 때 캘린더를 좀 더 쉽게 이용할 수 있도록 해주는 오픈소스이다. 내가 사용하는 캘린더앱이 이 오픈소스를 이용하고 있어서 관심을 가지게 되었다. 가장 주요한 특징 중에 하나는 제스처를 통해 week 모드로 넘어갈 수 있다는 것이다. (swipe up하면 해당 주에 걸리면서 week 모드로 변경된다. ) 이 오픈소스를 사용하기 위해서는 코코아팟 터치를 이용하면 된다. https://ze..