Property change for all objects in NSMutableArray

I have an NSMutableArray with 9 objects. These objects have many properties, such as questionName , questionWhatRow , etc.

I want to be able to change one of these properties for All objects in NSMutableArray .

Here is my NSMutableArray class.

 -(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 sister 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 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]; } 

Now I have another class called ScoreViewController , and I want to be able to change the questionCompleteOrNot property of NSMutableArray questionsArray for all objects / questions to @"No" .

My ScoreView has a Reset button, but I don’t know what to add to it to change all the questionCompleteOrNot property to @"No" .

Sorry for the long question, I tried to be very specific.

Edit

Here is my DetailView for tableView.

 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 questionCompleteOrNot is %@", [selectedQuestion questionCompleteOrNot]); 
+7
source share
1 answer

You can use NSArray makeObjectsPerformSelector:withObject: for example:

 [questionsArray makeObjectsPerformSelector:@selector(setQuestionCompleteOrNot:) withObject:@"No"]; 
+10
source

All Articles