基本上我试图为我的可变数组实现一个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?
答案 0 :(得分:2)
NSObject
NSMutableArray
(合成设计模式link)。之后,根据需要在新的复合对象中调用自定义setter。
注意:您的设计是错误的,您不应该考虑NSMutableArray
插入对象的实现方式。