何时写"NSString*str"或"NSString str"?

Mat*_*teo 1 iphone cocoa-touch pointers objective-c ios

我正在学习Objective C来在iOS上编程.我知道它与指针有关,我无法理解.我不知道创建一个NSObject像这样的字符串(或任何)的区别是什么:

NSString place = ...;
or
NSString *place = ...;
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!!

Lil*_*ard 14

永远不会NSString str.期.所有Obj-C对象实际上都是C指针.

  • 这是正确的,但也有很多以"NS"开头但不是NSObjects的类型名称.如果它在Cocoa文档中列为typedef,如`NSRect`或`NSUInteger`,则可能不需要使用指针. (2认同)

enn*_*ler 5

NSString是一个类,因此声明为的类的实例NSString *str必须始终声明为指针(因为对象实例只能通过指向对象结构的指针访问).因此,此声明是非法的:NSString str