2つのUiviewコントローラーの間でUIImageを送信することは適切ですか?UIImageを2つのコントローラ間で送信するのは正しいですか?
私はCS193P Spring - Smashtagの課題4に取り組んでいます。
ここで、私は表の表記を追加する必要があります(これは、コメント、ハッシュタグ、画像、URLのツイートの追加データです)。そこの適切な場所に画像を配置する必要があります。その目的のために私はすでにそれをダウンロードする。その後、ユーザーがその画像の1つをタップすると、ユーザーがズームおよびスクロールできる別のUIViewControllerにセグメンテーションする必要があります。
私が見た多くの例では、人々はイメージのURLを送信し、何度も何度もそれを取っています(コントローラと別のイメージでは同じイメージ)。私はそれがパフォーマンスを低下させると思う。だから私はコントローラ間でUIImageオブジェクトを送信します。
正しいですか?
// MARK: - Navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == Storyboard.SearchSegue {
if let svc = segue.destinationViewController as? SearchResultsTableViewController {
if let cell = sender as? TextTableViewCell {
if let text = cell.hashtagLabel.text {
if text.hasPrefix("@") || text.hasPrefix("#") {
svc.searchText = text
}
}
}
} else if let svc = segue.destinationViewController as? ImageViewController {
if let cell = sender as? ImagesTableViewCell {
svc.image =
}
}
}
}
svc.imageはVARです:あなたは別のを使用している場合にのみ意味をなす機能
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