두 개의 Uiview 컨트롤러간에 UIImage를 보내는 것이 맞습니까?UIImage를 두 컨트롤러간에 전송하는 것이 맞습니까?
저는 CS193P Spring - Smashtag의 과제 4를 진행하고 있습니다.
여기 저기에서 언급 한 표의 데이터 (주석, 해시 태그, 이미지, URL)의 추가 데이터를 구현해야합니다. 거기에 적절한 세포에 이미지를 놓아야합니다. 그 목적을 위해 나는 이미 그것을 다운로드한다. 그 후 사용자가 해당 이미지 중 하나를 두드리면 사용자가 이미지를 확대/축소하고 스크롤 할 수있는 다른 UIViewController와 연결되어야합니다.
내가 본 많은 사례에서 사람들은 이미지의 url을 보내고 또 다른 이미지를 가져옵니다 (다른 컨트롤러와 동일한 이미지의 경우). 나는 그것이 성능을 떨어 뜨린다 고 생각한다. 그래서 컨트롤러 사이에 UIImage 객체를 보냅니다.
하지만 맞습니까? 서로 다른 사용하는 경우에만 의미가
var image: UIImage? {
get {
return imageView.image
}
set {
imageView.image = newValue
imageView.sizeToFit()
scrollView?.contentSize = imageView.frame.size
}
}
및 cell.imageVar
var imageVar: UIImage? {
get {
return imageField.image
}
set {
imageField.image = newValue
spinner.stopAnimating()
}
}
가져 오기 기능
private func fetchImage() {
if let u = url {
spinner?.startAnimating()
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0)) {
let contentsOfURL = NSData(contentsOfURL: u)
dispatch_async(dispatch_get_main_queue()) {
if u == self.url {
if let imageData = contentsOfURL {
self.imageVar = UIImage(data: imageData)
} else {
self.spinner.stopAnimating()
}
}
}
}
}
}
플레아스 코드를 작성하면 제안을 할 수 있습니다. –
이미지를 다운로드 할 때 문서 디렉토리에 이미지 저장을 전달하지 않고 필요할 때마다 문서 디렉토리 경로를 사용하고 필요하지 않을 때 디렉토리에서 제거하려는 경우. –
캐시 시스템을 사용하여 네트워크 사용을 막고 더 빠르게로드하는 경우 이미지 URL을 보낼 수 있다고 생각합니다. 이미지 (또는 이미지)를 메모리에 보관하는 경우 메모리 관리/누출을 염두에 두어야합니다. – Bisca