感謝上面的帖子,這是偉大的,我設法排序它。這是我的代碼,可能非常笨拙,但它的工作原理。
首先,作爲予加載fetchedObjects到SelectorView控制器一個PickerView,我設置屬性「isSelectedPractice」到「NO」用下面的代碼:
for (Practice *fetchedPractice in [self.fetchedResultsController fetchedObjects]) {
[fetchedPractice setValue:@"NO" forKey:@"isSelectedPractice"];
[self.managedObjectContext save:nil];
然後我確定了所選擇的做法:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
Practice *practice = [[self.fetchedResultsController fetchedObjects] objectAtIndex:row];
self.selectedPractice = practice;
NSLog(@"The '%@' practice was selected using the picker", self.selectedPractice.name);
}
作爲視圖Segue'd回到RegularViewController我將selectedPractice的isSelectedPractice屬性設置爲YES。由於我不想在PickerView中使用isSelectedPractice YES導致出現多個對象,因此我遲遲沒有做這件事。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"SavedPractice Segue"])
{
[self.selectedPractice setValue:@"YES" forKey:@"isSelectedPractice"];
[self.managedObjectContext save:nil];
NSLog(@"Setting SelectedPractice as '%@' in RegularViewController with isSelectedPractice as '%@'",self.selectedPractice.name,self.selectedPractice.isSelectedPractice);
RegularViewController *rvc= segue.destinationViewController;
rvc.delegate = self;
rvc.selectedPractice = self.selectedPractice;
}
else {
NSLog(@"Unidentified Segue Attempted!");
}
}
我然後設置以下謂語RegularViewController的setupFetchedResultsController方法:
request.predicate = [NSPredicate predicateWithFormat:@"isSelectedPractice = %@", @"YES"];
的幫助
謝謝,我想知道使用屬性非常感謝你只不過是確認它。 SetValue:ForKey:如何應用於方法中的selectedPractice? – 2012-07-13 20:56:07
對不起,你能詳細解釋一下你的意思嗎? – jacerate 2012-07-13 21:55:24