这种标题在.h文件中的含义是什么?

时间:2015-09-29 17:10:43

标签: objective-c

我最近遇到了public void SaveMethod(String data){ // do something } 的格式。有人可以向我解释为什么这样做以及它意味着什么?特别是,我对第一组括号中的内容/重复感到困惑?这与我是否删除大括号及其间的所有内容有何不同?

.h header file

1 个答案:

答案 0 :(得分:1)

  

这与我是否删除大括号及其间的所有内容有何不同?

@property本身只是一个方法声明(或者,在您的情况下,是两个方法声明,一个getter和一个setter)。通常,您希望这些方法由实际的实例变量支持,getter和setter将获取和设置这些变量。这就是花括号中声明的内容。

但是,删除代码中的实例变量声明不会发生太大变化,因为编译器会为您使用@property声明来自动合成实例变量。换句话说,您通常需要支持@property的实例变量,但您无需明确声明

但是,在您的特定代码中,您没有显示足够的信息来揭示实际情况。很大程度上取决于您在相应的 .m 文件中执行(或不执行)操作。如果您对此@synthesize@property,那么合成的将是这些实例变量,chartWidthchartHeight。但如果您没有说@synthesize,您将获得实例变量_chartWidth_chartHeight的自动合成,现在,如果您还声明chartWidth和{{1显式的实例变量,你手上会有一些混乱。