Objective-C指针的使用

Objective-C指针的使用,objective-c,pointers,Objective C,Pointers,您何时需要*符号,何时不需要*符号(这是因为在objective-c中,像NSString这样的所有变量都是指针变量) 例如,何时需要执行“NSString*”而不是“NSString”?在Objective-C中,所有对象引用都是指针,因此在使用Objective-C对象声明时始终需要指针运算符 对于其他类型,其用法与C中完全相同。如果要通过引用传递数据结构或基本类型,请使用指针。所有Objective-C对象(如NSDictionary、NSString、NSNumber)都使用星号 对于任

您何时需要*符号,何时不需要*符号(这是因为在objective-c中,像NSString这样的所有变量都是指针变量)


例如,何时需要执行“NSString*”而不是“NSString”?

在Objective-C中,所有对象引用都是指针,因此在使用Objective-C对象声明时始终需要指针运算符


对于其他类型,其用法与C中完全相同。如果要通过引用传递数据结构或基本类型,请使用指针。

所有Objective-C对象(如NSDictionary、NSString、NSNumber)都使用星号

对于任何基元类型(int、double、float),都不需要星号。但是,NS前缀并不总是意味着必须使用星号。Cocoa定义了一些基于基元类型的结构(如NSInteger、NSRect、NSPoint)。这里也不用星号。例如,NSRect只是NSPoint和NSSize的结构,两者都由2个CGFLOAT(一种基本类型)组成

您可以使用*符号传递指向这些基本类型或结构之一的指针。

例外是“id”类型,它大致相当于C中的void*,因此星形包含在类型中。