2009-06-30 56 views
5

你什麼時候以及什麼時候不需要*符號(這是因爲在objective-c中所有的變量,比如NSString都是指針變量)?Objective-C指針的使用

例如,您何時需要執行「NSString *」而不是「NSString」?

回答

8

在Objective-C中,所有對象引用都是指針,所以當你用Objective-C對象聲明時,你總是需要指針操作符。

對於其他類型,其用法與C中的完全相同。當您希望通過引用傳遞數據結構或基元類型時使用指針。

+1

異常是「id」類型,它大致相當於C中的void *,因此該星型包含在該類型中。 – 2009-07-01 05:05:41

3

對所有Objective-C對象(例如NSDictionary,NSString,NSNumber)使用星號。

對於任何基本類型(int,double,float),您都不需要星號。但是,NS前綴並不總是意味着您必須使用星號。可可定義了一些基於原始類型的結構(比如NSInteger,NSRect,NSPoint)。這裏也不要使用星號。例如,NSRect只是一個NSPoint和NSSize的結構,它們都由2個CGFloats(一種基元類型)組成。

您可以使用*表示法將指針傳遞給其中一種基本類型或結構。