【发布时间】:2012-12-06 03:40:51
【问题描述】:
假设我有一个 @property,它是一个 NSMutablearray,它包含四个对象使用的分数。它们将被初始化为零,然后在 viewDidLoad 和应用程序的整个操作过程中更新。
出于某种原因,我无法完全考虑需要做什么,尤其是在声明和初始化步骤。
我相信这可能是私有财产。
@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]];
}
有更好的方法吗?
【问题讨论】:
-
我不确定我是否理解问题
-
你到底在问什么?你有没有试过在你的实现文件中声明它(
.m)并在你的viewDidLoad方法中初始化它(self.myMutableArray = [[NSMutableArray alloc]init];)? -
你需要多一点描述性
-
您可以在您的 init 方法或 viewDidLoad 或其他方法中分配数组,或者在 getter 方法中使用“按需”分配器。一旦它被分配,任何拥有指向包含对象的指针的人都可以引用该属性(如果是公共的)并读/写数组。
-
在向我的问题添加代码时,我意识到我的关键问题是将 NSMutableArray 和 NSArray 混合在一起,这会产生警告,让我觉得我有什么可怕的错误。但我认为我的总体思路是对的。
标签: ios nsmutablearray initialization nsinteger