Ios 实现块中的范围

Ios 实现块中的范围,ios,objective-c,Ios,Objective C,我想知道以下代码之间有什么区别: 首先 第二 @implementation ViewController AAShareBubbles *shareBubbles; // methods' implementations @end 您喜欢哪一个?为什么?第一个:它是一个实例变量 第二个:它是实现范围内的变量,不能用作实例变量 所以他们是不同的。 P/S:我从未使用过第二个。第一个代码定义Objective-C内部变量,因此您可以在当前工具内部使用 第二,用C风格定义一个私有全局变量。如

我想知道以下代码之间有什么区别:

首先

第二

@implementation ViewController

AAShareBubbles *shareBubbles;

// methods' implementations

@end

您喜欢哪一个?为什么?

第一个:它是一个实例变量

第二个:它是实现范围内的变量,不能用作实例变量

所以他们是不同的。
P/S:我从未使用过第二个。

第一个代码定义Objective-C内部变量,因此您可以在当前工具内部使用

第二,用C风格定义一个私有全局变量。如果两个或多个类中存在相同的变量名,则会出现运行时错误,如下图所示


@Signare您所说的“全球”和“本地”声明是什么意思?我只想让这个变量private第一个是类的局部变量。每个实例将获得自己的副本。第二个是全局变量,类的所有实例都将使用同一个副本(即,应用程序中只有一个这样的变量)。如果要在整个类中以多种方法使用shareBubbles实例,然后使用全局声明,如果shareBubbles的使用仅限于特定方法,则使用局部声明。在其他注释中使用局部和全局是不正确的。
@implementation ViewController

AAShareBubbles *shareBubbles;

// methods' implementations

@end