我们如何更改方法中传递的结构值?

时间:2009-12-16 15:39:24

标签: objective-c struct

我想在一个方法中传递一个结构,所以我可以改变它的值,但我对它的语法不太确定:

 struct qsTracker {
          int points;
          BOOL flagged;
 } myCurrentQs;

[self calculateScore:myCurentQs];

-(void) calculateScore:(struct qsTracker) currentQs  {
    currentQs.points++;
    currentQS.flagged = YES;
}

显然,currentQs没有看到任何变化。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:5)

您应该将指针传递给结构,而不是结构本身:

-(void) calculateScore:(struct qsTracker *) currentQs  {
    currentQs->points++;
    currentQS->flagged = YES;
}

然后:

[self calculateScore:&myCurentQs];

由于currentQs现在是指针,因此方法内部所做的更改将反映在方法之外。