0

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

@property(nonatomic, strong) NSMutableString *current

也列出而不是将其写在大括号内

@interface XMLParser : NSObject <NSXMLParserDelegate>
{

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

@property(nonatomic, strong) NSMutableArray *listPopulated;
4

2 回答 2

2

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

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

这是比我的更完整的解释

于 2013-08-22T11:40:13.720 回答
0

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

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

}

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

@property(nonatomic, strong) NSMutableArray *listPopulated;

这意味着你也可以在另一个类中使用这个 NSMutableArray

@property 和综合之间存在关系,例如 getter setter 方法 @property 用作 setter,@synthesis 用作 getter

于 2013-08-22T11:40:40.540 回答