我最近遇到了public void SaveMethod(String data){
// do something
}
的格式。有人可以向我解释为什么这样做以及它意味着什么?特别是,我对第一组括号中的内容/重复感到困惑?这与我是否删除大括号及其间的所有内容有何不同?
.h header file
答案 0 :(得分:1)
这与我是否删除大括号及其间的所有内容有何不同?
@property
本身只是一个方法声明(或者,在您的情况下,是两个方法声明,一个getter和一个setter)。通常,您希望这些方法由实际的实例变量支持,getter和setter将获取和设置这些变量。这就是花括号中声明的内容。
但是,删除代码中的实例变量声明不会发生太大变化,因为编译器会为您使用@property
声明来自动合成实例变量。换句话说,您通常需要支持@property
的实例变量,但您无需明确声明 。
但是,在您的特定代码中,您没有显示足够的信息来揭示实际情况。很大程度上取决于您在相应的 .m 文件中执行(或不执行)操作。如果您对此@synthesize
说@property
,那么合成的将是这些实例变量,chartWidth
和chartHeight
。但如果您没有说@synthesize
,您将获得实例变量_chartWidth
和_chartHeight
的自动合成,现在,如果您还声明chartWidth
和{{1显式的实例变量,你手上会有一些混乱。