Ios 如何在swift中管理内存?
我已将Ios 如何在swift中管理内存?,ios,iphone,memory-management,swift2,Ios,Iphone,Memory Management,Swift2,我已将iPod库导入mediaQuery变量 var mediaQuery = MPMediaQuery! 进行查询后,将加载库 override func didReceiveMemoryWarning() { super.didReceiveMemoryWaring() mediaQuery = nil } mediaQuery设置为零会减少内存使用吗 Swift有自己的垃圾收集器。将变量设置为nil将释放内存。此代码在Swift 2中不起作用,因为您使用指定对象必须存在在类型之后。代码
iPod
库导入mediaQuery
变量
var mediaQuery = MPMediaQuery!
进行查询后,将加载库
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWaring()
mediaQuery = nil }
mediaQuery
设置为零会减少内存使用吗 Swift有自己的垃圾收集器。将变量设置为nil将释放内存。此代码在Swift 2中不起作用,因为您使用指定对象必须存在代码>在类型之后。代码应如下所示:
var mediaquery: MPMediaQuery?
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWaring()
mediaquery = nil
}
但它没有给我任何错误或警告。我用了MPMediaQuery!我把它赋值为nil,它没有给我任何错误。自动引用计数或ARC,是一种垃圾收集形式,在这种形式中,一旦不再有对对象的引用,对象就会被释放。ARC下的每个对象都包含一个引用计数器,作为内存中的一个额外字段存储,每次为该对象设置变量时,该计数器都会递增,每次将该对象的引用设置为nil/null或引用超出范围时,只要引用计数器降到零,该计数器就会递减,对象负责删除自身,调用析构函数并释放分配的内存。让我们来看看,ARC不是一种垃圾收集器。Kristina询问将mediaQuery设置为nil是否会减少内存使用。答案是否定的。将隐式unwrapped optional设置为nil不会取消分配任何内存,也不会给她任何错误。如果在那之后她将使用对mediaQuery的引用来查找某些内容,那么程序就会崩溃。。。