Objective c 变量声明中的差异-目标c

Objective c 变量声明中的差异-目标c,objective-c,Objective C,我的问题主要是概念性的——以下两段代码之间到底有什么区别 (一) (二) 我问这个问题的原因是我能够编译一些遵循格式2而不是格式1的代码,我很好奇这两者之间的区别。第一个声明了一个实例变量。该名称属于Person对象 第二种格式将声明一个全局变量。如果我没有错的话,第二种格式将声明一个全局(对于编译单元)变量(缺少的*是一个拼写错误还是“real”?) 关于第一种格式:根据objective-c版本,它可能是正确的,也可能是错误的。 以前的版本(例如在OS X 10.5中)在@interefac

我的问题主要是概念性的——以下两段代码之间到底有什么区别

(一)

(二)


我问这个问题的原因是我能够编译一些遵循格式2而不是格式1的代码,我很好奇这两者之间的区别。

第一个声明了一个实例变量。该名称属于Person对象


第二种格式将声明一个全局变量。

如果我没有错的话,第二种格式将声明一个全局(对于编译单元)变量(缺少的*是一个拼写错误还是“real”?)

关于第一种格式:根据objective-c版本,它可能是正确的,也可能是错误的。 以前的版本(例如在OS X 10.5中)在
@intereface

@interface Person 
{    
NSString *name;
// other stuff
} 

- (void) someMethod

@end

这是类Person的一个属性定义,而现在这个要求是“宽松的”,属性也可以在实现块中声明(但您必须使用
{}

对不起,大家,这是一个输入错误-两者都是指针!应该复制并粘贴。。。
@implementation Person

NSString *name;
//other variables

- (void) someMethod

@end
@interface Person 
{    
NSString *name;
// other stuff
} 

- (void) someMethod

@end