swift - 如何在 Swift 中使用这个 fetchRequest()?
问题描述
我是新手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)=
解决方案
获取请求是通用的,因此您必须指定类型,如下所示:
let request: NSFetchRequest<Countries> = Countries.fetchRequest()
推荐阅读
- windows - Perl 如何查看 Windows 快捷方式指向的位置?
- c++ - 提升deadline_timer导致堆栈缓冲区溢出
- python - KML 文件中的批量自动替换字符串
- c++ - Boost::asio async_read 调用 2 次
- angular - CDK拖放可调整大小(角度)的问题
- grails - Grails 4 迁移后无法运行集成测试用例
- r - 将 R 路径转换为 bash 命令的最佳方法是什么?
- tinymce - 从 tinymce 4 到 tinymce 5 的代码迁移 - 动作函数问题(真/假)
- ios - 后台 URLSession 卡住
- c - 消息队列 mq 发送错误。错误的文件描述符