私のアプリは、1分に1回、その日の1分間に対応する写真で変更されるスライドショーです。私は現在、大規模な公開イベントで多くのデバイス上で行われるため、時間をチェックしてイメージを1秒ごとに更新しています。UIImageの現在の値を取得しようとしています
関連ビットは以下のとおりです。
@IBOutlet weak var theBrokenWatch: UIImageView!
if theBrokenWatch.image != UIImage(named: theImageName as String) {
theBrokenWatch.image = getUncachedImage(named: theImageName)
print("changed image to", theCurrentTime as String)
}
func getUncachedImage (named name : String) -> UIImage? {
if let imgPath = NSBundle.mainBundle().pathForResource(name, ofType: nil) {
return UIImage(contentsOfFile: imgPath)
}
return nil
}
今if
文が動作しません。 imageNamed:
を使用してイメージを設定していたときに機能しましたが、720枚の写真で大きなメモリ問題が発生しました。
イメージを変更する必要があるかどうかを確認するにはどうすればよいですか(つまり、現在の時刻として計算したものではないのですか)を確認するにはどうすればよいですか?
実際にif文で何を確認していますか?私はそれがどんな場合でもうまくいくとは思わない。新しいUIImageオブジェクトをメモリ内の別の場所に作成しています。同じUIImageオブジェクトは、同じイメージであっても、以前作成したUIImageオブジェクトと同じではありません。 imagedNamedはイメージをキャッシュしていたために働いた可能性があります。 – Yan
現在のイメージを変更する必要があるかどうかを確認しようとしていました。だから12:37に、画像は1236.jpgですか? contentsOfFileを使用すると、各UIImageがユニークでチェック不可能になりますか? TheBrokenWatch(画像が表示されている場所)が常に画像を取得する場所であれば、私はそれを確認できるはずはないと思いますか? – Richard