“本地对象变量”是在方法中使用或初始化的变量,还是参数?我在Xcode的文档或Google中找不到这个术语。
我在Objective-C中找到了这个我正在使用的书。完整的引用是
作为基本C数据类型的局部变量没有默认初始值,因此在使用它们之前必须将它们设置为某个值。 reduce方法中的三个局部变量在使用之前设置为值,因此这不是问题。 本地对象变量默认情况下初始化为 nil 。与实例变量(通过方法调用保留其值)不同,这些局部变量没有内存。因此,在方法返回后,这些变量的值消失。每次调用一个方法时,该方法中定义的每个局部变量都会使用变量的声明重新初始化为指定的值(如果有的话)。“
答案 0 :(得分:1)
根据您的评论,我理解这本书的含义。局部变量是特定范围的局部变量(在C和Objective-C中用大括号“{}”表示)。局部变量在它们使用的范围内声明,而不是可以全局查看和使用的全局变量(根据声明可见性,对文件,多个文件或整个程序)。实例变量是类实例的一部分,可以被任何方法使用(如果使用@public声明,也可以使用其他类,尽管这通常不是很好的做法)。
原始局部变量是局部变量,其类型是C原语,如int,float,char等。本书所称的“局部对象变量”只是局部变量,其类型是(指向)Objective-C宾语。示例包括NSString *
,NSDictionary *
和id
。
局部变量存储在堆栈中,而不是堆。堆栈上的变量在声明它们的方法或函数调用结束时消失。这个Stack Overflow问题有一些很好的答案,解释了堆栈和堆之间的区别:What and where are the stack and heap?
Google搜索“本地变量objective-c”的第一个结果:http://blog.ablepear.com/2010/04/objective-c-tuesdays-local-variables.html。
答案 1 :(得分:0)
在方法中定义了局部变量,并且定义了方法本身内部存在的变量的范围。