Предположим, что у меня есть класс, содержащий изменяемый массив. Я хочу убедиться, что если другие классы запросят массив, они получат неизменяемый тип, но в классе-владельце это на самом деле экземпляр 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];
}