gpt4 book ai didi

swift - 我如何在 Swift 中使用这个 fetchRequest()?

转载 作者:搜寻专家 更新时间:2023-11-01 06:25:14 25 4
gpt4 key购买 nike

我是 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];

但是在使用 swift 创建一个 NSManagedObject 类之后,我看到 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)=

最佳答案

您在 fetchRequest() 声明中使用了两个不同的实体 CountriesAtributos。那确实暧昧。实体必须是唯一的。

@nonobjc public class func fetchRequest() -> NSFetchRequest<Countries> {
return NSFetchRequest<Countries>(entityName: "Countries")
}

你必须使用它

let fetchRequest : NSFetchRequest<Countries> = Countries.fetchRequest()

注意:强烈建议以单数形式命名实体。从语义上讲,每条记录代表一个 Country 而不是一个 Countries。只有对多关系才应该以复数形式命名。

关于swift - 我如何在 Swift 中使用这个 fetchRequest()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56838434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com