according to the new Core Data changes, Xcode generates this subclass for me:
extension Person {
@nonobjc public class func fetchRequest() -> NSFetch
The reason this is happening is there are two methods named fetchRequest in your Person class:
Person) with return type NSFetchRequestNSManagedObject with return type NSFetchRequestThat's actually why it is ambiguous, compiler does not know which out of 2 you refer to. If you rename func name in your Person+CoreDataProperties to from fetchRequest to personFetchRequest and call by that name - it would compile just like that.
Even better - just add another func to your Person+CoreDataClass with different name, which would return Person.fetchRequest(), and you won't need to cast when calling by that name.