在swift和xFF0C中;它是全局变量还是属性?

在swift和xFF0C中;它是全局变量还是属性?,swift,global-variables,Swift,Global Variables,全局变量是在任何外部定义的变量 函数、方法、闭包或类型上下文。《Swift编程指南》 所以这是一个问题: class Dog { var name: String? func run(){ } } 名称是全局变量还是属性 @implementation Dog{ NSString *name; - (void)run{ } } name是一个全局变量或属性?因为类是一种类型,所以在Swift示例中,name是一个属性 @implementation D

全局变量是在任何外部定义的变量 函数、方法、闭包或类型上下文。《Swift编程指南》

所以这是一个问题:

class Dog {
    var name: String?
    func run(){

    }
}
名称是全局变量还是属性

@implementation Dog{

 NSString *name;
- (void)run{ 

   }
}

name是一个全局变量或属性?

因为类是一种类型,所以在Swift示例中,
name
是一个属性

@implementation Dog{

 NSString *name;
- (void)run{ 

   }
}

在Objective-C示例中,
name
是一个全局变量,因为属性是在
@接口
范围中定义的,需要
@属性
声明。(实例变量不需要任何声明,但它们必须位于
@接口
@实现
范围内的块中。)

由于类是一种类型,因此在Swift示例中,
名称
是一个属性


在Objective-C示例中,
name
是一个全局变量,因为属性是在
@接口
范围中定义的,需要
@属性
声明。(实例变量不需要任何声明,但它们必须位于
@接口
@实现
范围内的块中。)

名称
位于类型上下文中,
类Dog
,因此它是
Dog
实例的属性

第二个示例类似于Objective-C(它肯定不是Swift),但它的ObjC语法不正确。现在还不清楚实际的代码是什么。如果你的意思是:

@implementation Dog 
NSString *name;
- (void)run {     
}
@end
然后,
name
是一个全局变量,但千万不要这样写。这很令人困惑。
name
声明应该在
@implementation
块之外,以避免混淆。另一方面,如果你想写:

@implementation Dog {   
    NSString *name;
}

- (void)run {
}
@end

然后,
name
是一个私有实例变量(与属性不同)。这在现代ObjC中是一种不常见的语法,通常应避免使用。

name
位于类型上下文中,
类Dog
,因此它是
Dog
实例的属性

第二个示例类似于Objective-C(它肯定不是Swift),但它的ObjC语法不正确。现在还不清楚实际的代码是什么。如果你的意思是:

@implementation Dog 
NSString *name;
- (void)run {     
}
@end
然后,
name
是一个全局变量,但千万不要这样写。这很令人困惑。
name
声明应该在
@implementation
块之外,以避免混淆。另一方面,如果你想写:

@implementation Dog {   
    NSString *name;
}

- (void)run {
}
@end

然后,
name
是一个私有实例变量(与属性不同)。这在现代ObjC中是一种不寻常的语法,通常应该避免使用。

谢谢,第二个示例是Objective-C,您是对的。我犯了一个错误<代码>@implementation ClassA{+(instancetype)shareTools{return[[self alloc]init];}静态工具*_实例;静态调度_once_t onceToken;调度_once(&onceToken,^{u实例=[super allocWithZone:zone];});返回_实例;}@end静态工具*\实例是全局的吗?谢谢,第二个例子是Objective-C,你说得对。我犯了一个错误<代码>@implementation ClassA{+(instancetype)shareTools{return[[self alloc]init];}静态工具*_实例;静态调度_once_t onceToken;调度_once(&onceToken,^{u实例=[super allocWithZone:zone];});返回_实例;}@end静态工具*\u实例是全球性的吗?非常感谢,@JesperThanks,@Jesper