【发布时间】:2014-08-04 03:00:30
【问题描述】:
假设我有一个包含可变数组的类。我想确保如果其他类要求该数组,它们将获得一个非可变类型,但在所属类中,它实际上是NSMutableArray 的一个实例,以便我可以添加和删除项目。
#import "Person.h"
@class Asset;
@interface Employee : Person
{
NSMutableArray *_assets;
}
@property (nonatomic,copy) NSArray *assets;
-(void)addAssets:(Asset *)a;
问题是,我是否必须将访问器方法修改成这样,或者它会自动按照我想要的方式运行?
#import "Employee.h"
#import "Asset.h"
@implementation Employee
/* Accessors for assets properties
-(NSArray *)assets
{
return [_assets copy];
}
-(void)setAssets:(NSArray *)assets
{
_assets = [assets mutableCopy ];
}
*/
-(void)addAssets:(Asset *)a
{
//is assets nil?
if (!_assets) {
//Create Array
_assets = [[NSMutableArray alloc]init];
}
[_assets addObject:a];
}
【问题讨论】:
-
你为什么不试试?
标签: objective-c properties accessor ivar