如果类包含任何静态变量和静态方法,那么它的生命周期是什么

时间:2017-08-31 19:14:12

标签: ios objective-c swift memory static

我的类包含一个静态变量和一个静态方法,并且它的内存没有得到释放,并且新对象一直在创建。所以我的问题是,这是因为静态成员还是别的什么?

1 个答案:

答案 0 :(得分:0)

如果对象具有静态变量或静态方法,则其生命周期不受影响。静态方法是整个类的方法。类似地,静态变量是属于类的变量,而不是实例。

想想汽车工厂和汽车。静态方法是汽车工厂所做的事情,比如制造汽车。告诉汽车厂建造一辆新车对去年制造的汽车没有影响。

同样,汽车工厂墙上的日历(汽车类的静态变量)对去年制造的汽车没有影响。如果你改变汽车工厂的日程表来显示未来5年的一天,它不会使去年建造的汽车突然变老5年。

如果你的对象没有被释放,那就意味着有一些东西强烈引用它。您可能有一个保留周期。