-2

我对如何调用方法及其背后的语法有点困惑。有人可以为我剖析两行代码吗?我有一堆随机的问题。

NSString *testString;  
testString = [[NSString alloc] init]; 

那么这里发生了什么?正在创建一个名为 testString 的新指针……这指向什么?

然后在最后一行,它正在被设置,但我对什么感到很困惑。是:

[[NSString alloc] init]

返回地址?是否在 NSString 上调用方法“alloc”,然后在该输出上调用 init?alloc 和 init 甚至可以做什么?

谢谢。

4

2 回答 2

1

alloc/init是在 Objective-C 中创建新对象的标准方式。该方法alloc是类的类方法,NSObject该类NSString(以及大多数其他 Objective-C 对象)是其子类。它所做的是为 string 分配内存testString,并返回它。该init方法返回一个空且不可变的字符串。这相当于[NSString string],它返回完全相同的东西。

所做的只是声明一个NSString *testString新变量,它不分配任何内存或初始化它。

于 2013-07-22T03:42:07.147 回答
0

NSString 会分配一个物理内存地址,然后它会初始化一些方法,你可以定义你的自定义方法extend init。

于 2013-07-22T04:17:09.490 回答