我想在一个方法中传递一个结构,所以我可以改变它的值,但我对它的语法不太确定:
struct qsTracker {
int points;
BOOL flagged;
} myCurrentQs;
[self calculateScore:myCurentQs];
-(void) calculateScore:(struct qsTracker) currentQs {
currentQs.points++;
currentQS.flagged = YES;
}
显然,currentQs没有看到任何变化。任何帮助将不胜感激。
答案 0 :(得分:5)
您应该将指针传递给结构,而不是结构本身:
-(void) calculateScore:(struct qsTracker *) currentQs {
currentQs->points++;
currentQS->flagged = YES;
}
然后:
[self calculateScore:&myCurentQs];
由于currentQs
现在是指针,因此方法内部所做的更改将反映在方法之外。