2010-03-10 40 views
0

我知道asterix是用于指针的,我现在对指针有所了解。但我仍然不知道为什么在头声明一个变量,当我需要使用一个星号,例如:obj-c中头部变量声明中的星号

UINavigationController * navController; 

为什么不说:

UINavigationController navController; 

感谢

回答

2

因为在你的例子中:

UINavigationController * navController;

navController是指向UINavigationController类型的对象的指针;

而你总是使用Objective-C的对象,当你创建新实例指针工作具有:

[[MyClass alloc] init] 

返回指向MyClass类型,即(MyClass的*)

2

在新创建的对象您正在声明需要为对象分配的内存的标头。您需要使用*运算符,因为您只需要为引用/指向对象的指针声明内存空间,而不是对象本身的空间。