假设,你的.h文件看起来像这样:两个相互的NSMutableArray对象的变化
@property (retain, nonatomic) NSMutableArray *songs;
- (NSMutableArray *)popularSongs;
- (void)make20PercentDiscountToPopularSongs
你.m文件看起来是这样的:
- (NSMutableArray *)popularSongs
{
NSMutableArray *popularSongs = [NSMutableArray array];
for (Song *song in self.songs) {
if (song.isPopular) {
[popularSongs addObject:song];
}
}
return popularSongs;
}
- (void)make20PercentDiscountToPopularSongs
{
for (Song *song in self.popularSongs) {
song.price = song.price * 0.8;
}
}
上面的代码增加了20%的折扣流行歌曲。我承认有一个更简单的方法来做到这一点。您可以在一个函数中使用“make20PercentDiscountToPopularSongs”和“popularSongs”函数,但假设代码是按照上面所写的方式编写的。
在上面的例子中,将行:
song.price = song.price * 0.8;
其实,做任何修改对象:
@property (retain, nonatomic) NSMutableArray *songs;
与否?因为,好像该行会更改新创建的流行歌曲NSMutableArray而不是歌曲NSMutableArray,对吗?这个问题现在困扰了我很多时间。 我想对原始歌曲数组进行更改。对我来说,popularSongs的功能就像存储指向歌曲数组中歌曲的指针一样。
好奇,为什么歌曲上没有“流行”标志或“排名”字段?那么你只需要一个你可以排序和过滤的数组。 – BergQuester
另外,假设流行歌曲的对象是两个数组中的相同对象,则只需更改一次该值。 – BergQuester
辉煌但让我们坚持上面的范例。 –