@property声明和花括号声明

时间:2013-08-22 11:35:08

标签: ios objective-c

我知道这是一个愚蠢的问题,但这个@property声明与大括号内的声明有什么区别,或者我也可以这样做

  

@property(非原子,强)NSMutableString *当前

列表而不是在大括号内写入

@interface XMLParser : NSObject <NSXMLParserDelegate>
{

    NSMutableString *currentList;
    NSXMLParser *parser;
    dataFileHolder *dataCurrent;
}

@property(nonatomic, strong) NSMutableArray *listPopulated;

2 个答案:

答案 0 :(得分:2)

如果您使用@property声明getter,将根据您为该属性设置的参数自动生成setter。在此示例中,setter和getter将是非原子的,并使用强引用进行保存。

另一方面,如果你用大括号定义它,只会创建变量(没有getter和setter)

Here is a more complete explanation than mine

答案 1 :(得分:0)

如果在大括号内声明任何对象,则该对象仅使用该类@interface XMLParser:NSObject {

NSMutableString *currentList;
NSXMLParser *parser;
dataFileHolder *dataCurrent;

}

但是如果你像这样使用@property声明你的对象

@property(非原子,强)NSMutableArray * listPopulated;

这意味着您可以在另一个类中使用此NSMutableArray

@property和getter setter方法之间存在关联@property作为setter而@ntnthesis作为getter