静态变量和内存消耗
Static variables and memory consumption
有了iOS,我们总是要关心内存消耗。
我有一个 class,它可能有数百个实例,但我无法找到一个讨论来表明在实例方法中声明静态字典是否意味着该实例的所有实例 class 将共享该字典的相同副本,或者每个实例都有自己的副本,这当然会破坏内存。
顺便说一句,如果这是 class 方法而不是实例方法,答案会有什么不同吗?
-(BOOL)doohickeyThing
{
static NSDictionary *someDictionary = [NSDictionary dictionaryWithObjectsAndKeys...
// more code here
}
谢谢。
根据定义,static
变量只有一个副本。无论您有多少个 class 实例,someDictionary
都只会有一个副本。它将被初始化一次,每次使用该方法时,无论 class 实例如何,都将使用完全相同的字典实例。也就是说,它是共享的。
无论是实例方法还是class方法都是如此
有了iOS,我们总是要关心内存消耗。
我有一个 class,它可能有数百个实例,但我无法找到一个讨论来表明在实例方法中声明静态字典是否意味着该实例的所有实例 class 将共享该字典的相同副本,或者每个实例都有自己的副本,这当然会破坏内存。
顺便说一句,如果这是 class 方法而不是实例方法,答案会有什么不同吗?
-(BOOL)doohickeyThing
{
static NSDictionary *someDictionary = [NSDictionary dictionaryWithObjectsAndKeys...
// more code here
}
谢谢。
根据定义,static
变量只有一个副本。无论您有多少个 class 实例,someDictionary
都只会有一个副本。它将被初始化一次,每次使用该方法时,无论 class 实例如何,都将使用完全相同的字典实例。也就是说,它是共享的。
无论是实例方法还是class方法都是如此