Я новичок в swift
. Я пытаюсь создать базовый класс данных NSManagedObject
, как я делал это в Objective-C
.
В Objective-C я бы создал что-то вроде
+ (Countries *)countryWithName:(NSString *)name
inManagedObjectContext:(NSManagedObjectContext *)context {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:NSStringFromClass([self class])
inManagedObjectContext:context];
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"(country == %@)", name];
request.predicate = predicate;
return [[context executeFetchRequest:request error:nil] lastObject];
}
Итак, в любое время, когда я хотел бы выбрать страну по названию на основных данных, я бы сделал
userCountry = [Countries countryWithName:@"United States" inManagedObjectContext:self.managedObjectContext];
Но после создания класса NSManagedObject
с помощью swift, я вижу, Xcode создал этот код внутри Countries+CoreDataProperties.swift
@nonobjc public class func fetchRequest() -> NSFetchRequest<Countries> {
return NSFetchRequest<Countries>(entityName: "Countries")
}
@NSManaged public var number: Int16
@NSManaged public var name: String?
@NSManaged public var shortcut: NSData?
Теперь я хочу создать функцию класса countryByName
. Первая строка должна быть
let fetchRequest = NSFetchRequest(entityName: "Countries")
, но fetchRequest()
уже создан.
как мне это использовать?
это не позволит мне использовать
let request = Countries.fetchRequest()
выдает ошибку Ambiguous use of fetchRequest)=