在Swift中NSData的contentsOfURL函数正在逐渐增加使用中的内存

时间:2014-06-28 17:07:29

标签: memory-management swift

func saveImage(tweet: Dictionary<String, AnyObject>)
{
    var names : Array<String> = []
    var urls : Array<String> = []

    if let entity = tweet["extended_entities"] as? NSDictionary {
        if let mediatag = entity as? Dictionary<String, AnyObject> {
            if let medias = mediatag["media"] as? NSArray {
                if let mediaSwift = medias as? Dictionary<String, AnyObject>[]
                {
                    for i in 0..mediaSwift.count {
                        if let url = mediaSwift[i]["media_url"] as? NSString
                        {
                            urls.append(url + ":orig")
                            let nsstring = url as NSString
                            let splits = nsstring.componentsSeparatedByString("/") as Array<String>
                            names.append(splits[splits.endIndex-1])
                        }
                    }
                }
            }
        }
    }

    for i in 0..names.count
    {
        let string: NSString = urls[i]
        let nsurl = NSURL(string: urls[i])
        let nsdata = NSData(contentsOfURL: nsurl, options: NSDataReadingOptions.DataReadingUncached, error: nil)
    }
}

我编写简单的swift应用程序,可以保存用户的推特图片。

但是,在我添加简单的行之后

let nsdata = NSData(contentsOfURL: nsurl, options: NSDataReadingOptions.DataReadingUncached, error: nil)

它消耗太多内存并释放小内存。所以我的应用程序的记忆力逐渐增加。

Memory Graph

每个操作包含150个网址,每个网址包含大约400kb的图片。

有任何错误吗?

请帮忙。

提前致谢

https://github.com/newpolaris/shiny-ninja.git

0 个答案:

没有答案