簡體   English   中英

應用程序運行時不斷增加內存使用量(Swift)

[英]Continuously increasing memory usage when app running ( Swift )

我正在從文檔目錄中檢索圖像數據和字符串,並在ViewController1的集合視圖中使用此數據。 然后,通過單擊集合視圖單元格轉到下一個視圖控制器ViewController2,再次從文檔目錄中檢索圖像數據和字符串,並在另一個集合視圖中使用此數據。 現在的問題是,當我每次從一個視圖控制器轉到另一個視圖控制器時,每次增加內存使用率並導致應用程序崩潰時,都會返回。 這種內存增加的原因是什么,我將如何解決?

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{
let cell: PhotoThumbnail = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! PhotoThumbnail

 do{
            let ta = foldersDirectoryPath + "/\(self.titles2[indexPath.item])"
            print(ta)
            let ti = try NSFileManager.defaultManager().contentsOfDirectoryAtPath(ta)
            print(ti.count)
            cell.amountLabel.layer.borderWidth = 1
            cell.amountLabel.layer.borderColor = UIColor(red:16/255.0, green:56/255.0, blue:70/255.0, alpha: 1.0).CGColor
            cell.amountLabel.text = "\(ti.count)"


        }catch{

        }

        cell.setThumbnailImage(images[indexPath.item])
        let str = titles2[indexPath.item]
        let nameString = str.substringWithRange(Range<String.Index>(start: str.startIndex.advancedBy(24), end: str.endIndex.advancedBy(0)))

        cell.nameLabel.text = nameString
        print(dateArray[indexPath.item])
        cell.dateLabel.text = dateArray[indexPath.item]

   return cell
}


class PhotoThumbnail: UICollectionViewCell {

@IBOutlet weak var imgView : UIImageView!

@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var amountLabel: UILabel!

  func setThumbnailImage(thumbnailImage: UIImage){
    self.imgView.image = thumbnailImage
   }

}

此代碼用於第一個收藏夾視圖。

它創建視圖的一個和兩個的多個實例。 您應該使用segue將數據從一個視圖傳遞到另一個視圖,然后再傳遞回去。

您需要將所有聲明創建為可選的,並且當您從一個視圖控制器轉到另一個控制器時,請創建一個函數來釋放所有這些對象。 這將有助於管理內存問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM