假设我有一个客观的c类接口,如:
@interface {
NSString * someString;
}
@property (nonatomic, retain) NSString * someString;
使用@implementation来@synthesizes字符串并执行其他一些操作。
我想知道的是,是否有必要在括号内包含NSString * someString对象指针声明。 (顺便说一句,是否有一个特定的术语用于定义变量的括号之间的空间?)如果省略NSString * someString声明,并且@property行具有所有相同的信息,似乎代码将正常工作类型。那么,如果没有必要使用变量声明,为什么选项存在呢?如果变量声明和@property声明中存在冲突类型,会发生什么?
答案 0 :(得分:1)
在大多数情况下,它不是必需的,因为@synthesize
将创建一个未定义的变量。此外,您还可以使用{<1}}创建自己的变量,使用:
@synthesize
这将创建一个getter方法(@synthesize aVar = _theVariableName;
),一个setter方法(aVar
),以及一个名为setAVar
的实例变量,您可以将其用于内存管理。
但是,我不知道_theVariableName
是否会这样做,如果实施自己的制定者和吸气者,我认为你需要声明......