我试图按存储在核心数据中的名称搜索书签列表,但在var searchResults中的“return items”旁边出现了这个错误
“无法将“FetchedResults<MyBookmark”类型的返回表达式转换为返回类型“[String]””
@FetchRequest(sortDescriptors: [NSSortDescriptor(keyPath: \MyBookmark.name, ascending: true)], animation: .default)
private var items: FetchedResults<MyBookmark>
@State private var searchText = ""
ForEach(searchResults, id: \.self) { myBookmark in
Text(myBookmark.name!)
Text(myBookmark.url!)
}
.searchable(text: $searchText)
var searchResults: [String] {
if searchText.isEmpty {
return items
} else {
return items.filter { $0.localizedCaseInsensitiveContains(searchText) }
}
}
我的书签
@objc(MyBookmark)
public class MyBookmark: NSManagedObject, BaseModel {
static var all: NSFetchRequest<MyBookmark> {
let request: NSFetchRequest<MyBookmark> = MyBookmark.fetchRequest()
request.sortDescriptors = []
return request
}
}
extension MyBookmark {
@nonobjc public class func fetchRequest() -> NSFetchRequest<MyBookmark> {
return NSFetchRequest<MyBookmark>(entityName: "MyBookmark")
}
@NSManaged public var name: String?
@NSManaged public var url: String?
}
extension MyBookmark : Identifiable {
}
这是一款macOS应用