我想确保在Objective-C
中了解static
的一些知识
在Objective-C中,以下代码是错误的,但在Objective-C ++中它是对的:
static UIView *view = [[UIView alloc] init];
当我使用static
修改一个像上面代码一样的指针变量时,我发现它会保留两个变量:指针和对象(指针指向),是对吗?
答案 0 :(得分:3)
是的C ++允许比C更复杂的静态初始化。static
关键字与这两种语言中的这种行为无关;只是控制范围(注意:我假设你没有在C ++类声明中使用static
,而是在实现文件中使用C / Objective-C)。
您需要了解对象(类的实例)的概念以及对该对象的引用。您可能还想了解内存中存储这些内容的位置(即堆和堆栈)。与C ++和C不同,Objective-C还增加了复杂性,因为它使用引用计数来管理对象的生命周期。