8

我有NSMutableArray9 个对象。这些对象具有许多属性,例如questionName,questionWhatRow等。

希望能够更改NSMutableArray.

这是我的 NSMutableArray 类。

-(id) init
{
    self = [super init];
    
    if (self)
    {
        self.questionsArray = [[NSMutableArray alloc] init];
        
        Question *newQuestion = [[Question alloc] init];
        newQuestion.questionName = @"What is the name of the girl who has to fetch water for her family every day?";
        newQuestion.questionRowName = @"Question 1";
        newQuestion.questionAnswer = @"Nya";
        newQuestion.questionHint = @"Maybe if you read the book you would know";
        newQuestion.questionWhatRow = @"Nya";
        newQuestion.questionCompleteOrNot = @"No";
        newQuestion.pointForQuestion = 1;
        [self.questionsArray addObject:newQuestion];
        
        newQuestion = [[Question alloc] init];
        newQuestion.questionName = @"What is Nya's sister's name?";
        newQuestion.questionRowName = @"Question 2";
        newQuestion.questionAnswer = @"Akeer";
        newQuestion.questionHint = @"Maybe if you read the book you would know";
        newQuestion.questionWhatRow = @"Nya";
        newQuestion.questionCompleteOrNot = @"No";
        newQuestion.pointForQuestion = 1;
        [self.questionsArray addObject:newQuestion];
        
        newQuestion = [[Question alloc] init];
        newQuestion.questionName = @"What people is Nya's mother scared of when her father and sons go hunting?";
        newQuestion.questionRowName = @"Question 3";
        newQuestion.questionAnswer = @"Dinka";
        newQuestion.questionHint = @"Maybe if you read the book you would know";
        newQuestion.questionWhatRow = @"Nya";
        newQuestion.questionCompleteOrNot = @"No";
        newQuestion.pointForQuestion = 1;
        [self.questionsArray addObject:newQuestion];
        
        newQuestion = [[Question alloc] init];
        newQuestion.questionName = @"What is Salva scared of when he is in the Akobo desert?";
        newQuestion.questionRowName = @"Question 4";
        newQuestion.questionAnswer = @"Lions";
        newQuestion.questionHint = @"He is scared of an animal because it ate his friend Marial";

        
        newQuestion = nil;
                
    }
    
    return self;
}

-(NSUInteger)count
{
    return questionsArray.count;
}


- (Question *)questionAtIndex:(NSUInteger)index
{
    return [questionsArray objectAtIndex:index];
}

现在,我有另一个名为 的类ScoreViewController,我希望能够将所有对象/问题的属性questionCompleteOrNot更改NSMutableArray questionsArray@"No".

我的 ScoreView 有一个重置按钮,但我不知道该放什么来更改 to的所有 questionCompleteOrNot属性。questionsArray@"No"

对不起,这个问题很长,我试图非常具体。

编辑

这是我的 tableView 的 DetailView。

if ([[selectedQuestion questionCompleteOrNot] isEqualToString:@"No"])
    {
        if ([[selectedQuestion questionAnswer] caseInsensitiveCompare:answerField.text] == NSOrderedSame)
        {
            // Show the  correct label
            [correctLabel setHidden:NO];
            correctLabel.text = @"Correct!";
            correctLabel.textColor = [UIColor greenColor];

        }
        else
        {
            // Show the incorrect label
            [correctLabel setHidden:NO];
            correctLabel.text = @"Incorrect";
            correctLabel.textColor = [UIColor redColor];
            [incorrectPlayer play];
            [[selectedQuestion questionCompleteOrNot] isEqualToString:@"Yes"];
            
        }
        
        // Erase the text in the answerField
        answerField.text = @"";
    }
    if ([[selectedQuestion questionCompleteOrNot] isEqualToString:@"Yes"])
    {
        UIAlertView *error = [[UIAlertView alloc]
                              initWithTitle:@"Error"
                              message:@"You already answered this question. Please click the reset button on the score view to restart."
                              delegate:self
                              cancelButtonTitle:@"Okay!"
                              otherButtonTitles:nil];
        
        [error show];
        answerField.text = @"";
    }
    
    selectedQuestion.questionCompleteOrNot = @"Yes";
    correctLabel.text = @"";
    NSLog(@"Selected question's questionCompleteOrNot is %@", [selectedQuestion questionCompleteOrNot]);
4

1 回答 1

10

您可以使用NSArray's makeObjectsPerformSelector:withObject:,如下所示:

[questionsArray makeObjectsPerformSelector:@selector(setQuestionCompleteOrNot:) withObject:@"No"];
于 2012-12-31T21:06:49.023 回答