gpt4 book ai didi

ios - NSMutableArray 属性初始化和更新

转载 作者:行者123 更新时间:2023-12-04 19:12:16 26 4
gpt4 key购买 nike

假设我有一个 @property,它是一个 NSMutablearray,它包含四个对象使用的分数。它们将被初始化为零,然后在 viewDidLoad 和应用程序的整个操作过程中更新。

出于某种原因,我无法完全考虑需要做什么,尤其是在声明和初始化步骤。

我相信这可以是私有(private)属性(property)。

@property (strong, nonatomic) NSMutableArray *scores;

@synthesize scores = _scores;

然后在 viewDidLoad 我尝试这样的事情但得到一个错误。我想我只需要语法方面的帮助。或者我错过了一些非常基本的东西。
self.scores = [[NSMutableArray alloc] initWithObjects:@0,@0,@0,@0,nil];

这是初始化它的合适方法吗?那么如何将 (NSNumber *)updateValue 添加到第 n 个值?

编辑:我想我想通了。
-(void)updateScoreForBase:(int)baseIndex byIncrement:(int)scoreAdjustmentAmount
{
int previousValue = [[self.scores objectAtIndex:baseIndex] intValue];
int updatedValue = previousValue + scoreAdjustmentAmount;
[_scores replaceObjectAtIndex:baseIndex withObject:[NSNumber numberWithInt:updatedValue]];
}

有没有更好的方法来做到这一点?

最佳答案

您正在初始化 viewDidLoad , 但是你应该在 init .

这两者是相似的,并且完全有效。

_scores = [[NSMutableArray alloc] initWithObjects:@0,@0,@0,@0,nil]; 

或者,
self.scores=[[NSMutableArray alloc]initWithObjects:@0,@0,@0, nil];

您的最后一个问题... Then how do I add (NSNumber *)updateValue to, say, the nth value?如果您 addObject:最后会添加。您需要 insertObject:atIndex:在您所需的索引中,所有以下对象将转移到下一个索引。
 NSInteger nthValue=12;
[_scores insertObject:updateValue atIndex:nthValue];

编辑:

编辑后,
NSInteger previousValue = [[_scores objectAtIndex:baseIndex] integerValue];
NSInteger updatedValue = previousValue + scoreAdjustmentAmount;
[_scores replaceObjectAtIndex:baseIndex withObject:[NSNumber numberWithInt:updatedValue]];

关于ios - NSMutableArray 属性初始化和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13736586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com