过多的内存使用迅速

时间:2015-04-05 02:17:22

标签: swift memory-leaks self-reference

我正在构建iOS的今天扩展,我很困惑为什么这个函数继续使用越来越多的内存。

请参阅以下代码:

func loadActivePlayer() {
    kodi.getActivePlayer {
        (response) in
        let result = JSON(response)

        let activePlayer = ActivePlayer()

        if let playerid = result["result"][0]["playerid"].int {
            activePlayer.playerid = playerid
        }

        if let type = result["result"][0]["type"].string {
            activePlayer.type = type
        }

        if(activePlayer.isEmpty()) {
            self.loadActivePlayer()
        }
        else {
            self.enablePlaybackButtons(true)
            self.activePlayer = activePlayer

            self.kodi.getItem(activePlayer.playerid) {
                (response) in
                var result = JSON(response)
                var item = Item()

                if let id = result["result"]["item"]["id"].int {
                    item.id = id
                }

                if let type = result["result"]["item"]["type"].string {
                    item.type = type
                }

                if let label = result["result"]["item"]["label"].string {
                    item.label = label
                }

                if let title = result["result"]["item"]["title"].string {
                    item.title = title
                }

                if let season = result["result"]["item"]["season"].int {
                    item.season = season
                }

                if let episode = result["result"]["item"]["episode"].int {
                    item.episode = episode
                }

                if let showtitle = result["result"]["item"]["showtitle"].string {
                    item.showtitle = showtitle
                }

                dispatch_async(dispatch_get_main_queue()) {
                    self.itemTitleLabel.text = item.title
                    self.itemShowTitleLabel.text = item.showtitle
                    self.itemSeasonEpisodeLabel.text = "S\(item.season)E\(item.episode)"
                }

                self.loadActivePlayer()
            }
        }
    }

当它进入if(activePlayer.isEmpty()) 内存使用量增加,增加和增加,非常恼人。

但是当它进入else时,内存使用率几乎保持不变,并没有显着增加。

任何人都可以帮助我理解为什么会这样吗?

提前Thanx!

0 个答案:

没有答案