如何在向数组添加对象时运行getter方法?

时间:2014-05-18 11:20:57

标签: ios objective-c

基本上我试图为我的可变数组实现一个getter和一个setter。 getter被称为fine,但是当我直接将数组设置为某个(使用=)时,显然只会调用setter。 但是,当我使用以下代码将项添加到数组时,不会调用setter:

[self.HighScores insertObject:newScore atIndex:i];

我看到有一堆额外的方法正在建议"通过xcode如:

-(void) insertObject:(NSObject *)object inHighScoresAtIndex:(NSInteger)index

然而,添加它仍然没有被调用。'

我的部分代码列在下面:

HighScoreCollection.h:

@interface HighScoreCollection : NSObject
@property(nonatomic) NSMutableArray *HighScores;

- (bool) AddHighScore: (HighScore* )newScore;
- (NSMutableArray*) HighScores;
- (void) setHighScores:(NSMutableArray*)HighScores;
@end

HighScoreCollection.m:

@implementation HighScoreCollection

@synthesize HighScores = _HighScores;

- (void) setHighScores:(NSMutableArray*)HighScores
{
//setter code
}

- (NSMutableArray*) HighScores
{
//getter code
}

@end

当我调用插入对象等数组方法时,如何运行setter?

1 个答案:

答案 0 :(得分:2)

  1. 添加课程
  2. 继承自NSObject
  3. 在第2步中的对象内部拥有此自定义对象中的NSMutableArray(合成设计模式link)。
  4. 之后,根据需要在新的复合对象中调用自定义setter。

    注意:您的设计是错误的,您不应该考虑NSMutableArray插入对象的实现方式。