2010-03-10 81 views
0

我知道asterix是用於指針的,我現在對指針有所瞭解。但我仍然不知道爲什麼在頭聲明一個變量,當我需要使用一個星號,例如:obj-c中頭部變量聲明中的星號

UINavigationController * navController; 

爲什麼不說:

UINavigationController navController; 

感謝

回答

2

因爲在你的例子中:

UINavigationController * navController;

navController是指向UINavigationController類型的對象的指針;

而你總是使用Objective-C的對象,當你創建新實例指針工作具有:

[[MyClass alloc] init] 

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

2

在新創建的對象您正在聲明需要爲對象分配的內存的標頭。您需要使用*運算符,因爲您只需要爲引用/指向對象的指針聲明內存空間,而不是對象本身的空間。