是否有必要在Objective-C @interface的括号内指定@property对象?

时间:2011-08-08 21:49:06

标签: objective-c

  

可能重复:
  Properties declared as instance variables too?

假设我有一个客观的c类接口,如:

@interface {
     NSString * someString;
}

@property (nonatomic, retain) NSString *  someString;

使用@implementation来@synthesizes字符串并执行其他一些操作。

我想知道的是,是否有必要在括号内包含NSString * someString对象指针声明。 (顺便说一句,是否有一个特定的术语用于定义变量的括号之间的空间?)如果省略NSString * someString声明,并且@property行具有所有相同的信息,似乎代码将正常工作类型。那么,如果没有必要使用变量声明,为什么选项存在呢?如果变量声明和@property声明中存在冲突类型,会发生什么?

1 个答案:

答案 0 :(得分:1)

在大多数情况下,它不是必需的,因为@synthesize将创建一个未定义的变量。此外,您还可以使用{<1}}创建自己的变量,使用:

@synthesize

这将创建一个getter方法(@synthesize aVar = _theVariableName; ),一个setter方法(aVar),以及一个名为setAVar的实例变量,您可以将其用于内存管理。

但是,我不知道_theVariableName是否会这样做,如果实施自己的制定者和吸气者,我认为你需要声明......