我对如何调用方法及其背后的语法感到困惑。有人可以为我解剖两行代码吗?我有一堆随机的问题。
NSString *testString;
testString = [[NSString alloc] init];
那么这里发生了什么?有一个名为testString的新指针正在创建......这指向什么?
然后在最后一行,它被设置,但我很困惑。是:
[[NSString alloc] init]
返回地址?在NSString上调用方法“alloc”,然后在该输出上调用init吗? alloc和init甚至做了什么?
感谢。
答案 0 :(得分:1)
alloc
/ init
是在Objective-C中创建新对象的标准方法。方法alloc
是NSObject
类的类方法,NSString
(以及大多数其他Objective-C对象)是其子类。它的作用是为字符串testString
分配内存,并返回它。 init
方法返回一个空且不可变的字符串。这相当于[NSString string]
,它返回完全相同的东西。
所有NSString *testString
都声明一个新变量,它不会分配任何内存或初始化它。
答案 1 :(得分:0)
NSString会分配一个物理内存地址,然后它会初始化一些方法,你可以定义自定义方法extend init。