objective-c compiler-errors clang synthesize declared-property

objective c - Error de compilación "uso de identificador no declarado" cuando elimino mis declaraciones @synthesize



objective-c compiler-errors (3)

Cuando no coloca un @synthesize en su código, la variable de instancia creada para respaldar la propiedad se llama _propertyName . Se refiere a la variable de instancia fetchedResultsController que ya no existe después de eliminar @synthesize . En su lugar, cambie todas las referencias a fetchedResultsController a _fetchedResultsController .

Con la última versión de LLVM, se eliminó el requisito de sintetizar propiedades.

Por lo tanto, pude eliminar todas mis declaraciones @synthesize excepto las de NSFetchedResultsController . ¿Alguien sabe por qué el compilador me advierte cuando @synthesize fetchedResultsController; el @synthesize fetchedResultsController; ¿línea?

Error:

El uso del identificador no declarado "fetchedResultsController", ¿se refirió a _fetchedResultsController?

Este es mi código:

@property (nonatomic, strong) NSFetchedResultsController *fetchedResultsController; @synthesize fetchedResultsController; - (NSFetchedResultsController *)fetchedResultsController { if (fetchedResultsController) { return fetchedResultsController; } if (!self.managedObjectContext) { self.managedObjectContext = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; } NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Session" inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; [fetchRequest setPredicate: self.predicate]; [fetchRequest setFetchBatchSize:20]; NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:NO]; NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; [fetchRequest setSortDescriptors:sortDescriptors]; fetchedResultsController= [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil]; fetchedResultsController.delegate = self; NSError *error = nil; if (![fetchedResultsController performFetch:&error]) { NSLog(@"Unresolved error %@, %@", error, [error userInfo]); abort(); } return fetchedResultsController; }


Debido a que la variable sintetizada por defecto es _fetchedResultsController not fetchedResultsController


La propiedad fetchedResultsController se sintetiza automáticamente en _fetchedResultsController , y esto ocurre para cada variable sintetizada.

Debe sintetizarlo explícitamente para cambiar su nombre.