티스토리 뷰

728x90
반응형

활용한 예제

RestAPI 서버에 접속하고 관련 데이터를 넣고 빼는 예제 

 

https://www.appcoda.com/restful-api-library-swift/

 

RESTful APIs Tutorial: How to Create Your Own REST Library in Swift

In this tutorial I will show you how to build your own lightweight class to perform RESTful web requests. Of course, we're going to build it in Swift.

www.appcoda.com

URL에 위치한 파일(이미지)를 다운로드 받아 UImageView에 디스플레이 하기

https://www.tutorialspoint.com/how-do-i-load-an-image-by-url-on-ios-device-using-swift

 

How do I load an image by URL on iOS device using Swift?

How do I load an image by URL on iOS device using Swift? To load an image in iOS using swift we’ll make use of simple data Task session. The image needs to be loaded in background because it may be of any size and we don’t want it to stop our main view’s o

www.tutorialspoint.com

 

RestManager 프로젝트는 이미 설정되어 있는 서버와 http request/response를 해 데이터를 주고 받을 수 있는 데모 프로젝트이다.

새로 사용자를 생성해서 API서버에 저장또는 다운로드 받을 수 있다. 

 

파일이 클라이언트(아이폰)에 일단 다운로드 되어 앱내 위치에 저장된다. 이를 두번째 예제에서 리모트 서버의 이미지를 다운로드 받아 사용하는 대신 클라이언트 상의 폴더를 가리키는 URL을 지정하면 되는 것을 확인하였다. 

 

imageToLoad 변수를 저장한 파일의 URL(/var/mobile/Container... 로 작성된 앱내 파일 위치)을 저장하고 UI 버튼을 누를 때 PressShowImageButton 함수가 실행되어 UIImageView의 extension에 작성된 downloadImage 메소드를 실행시켜 이미지를  해당 url에서 받아 UIImageView에 넣어 보여주게 되는 루틴이다.

 

import UIKit

class ViewController: UIViewController {

    let rest = RestManager()
    var imageToLoad: URL?
    
    @IBOutlet weak var imageView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        ....    
    }
    @IBAction func PressShowImageButton(_ sender: Any) {
        let url = imageToLoad
        imageView.downloadImage(from: url!)
    }
    ...
    ...
    ...
    
    func getSingleUser() {
    	...
        self.imageToLoad = saveURL
        ...
    }
}

extension UIImageView {
   func getData(from url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
      URLSession.shared.dataTask(with: url, completionHandler: completion).resume()
   }
   func downloadImage(from url: URL) {
      getData(from: url) {
         data, response, error in
         guard let data = data, error == nil else {
            return
         }
         DispatchQueue.main.async() {
            self.image = UIImage(data: data)
         }
      }
   }
}

 

728x90
반응형

'Programming > iOS' 카테고리의 다른 글

SwiftUI 자료 모음  (0) 2019.10.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함