Após atualizar o Xcode para a versão 16, todas as funções que usei para criar o FetchDescriptor retornam com um aviso:
O tipo 'ReferenceWritableKeyPath<Station, Opcional>' não está em conformidade com o protocolo 'Sendable'; este é um erro no modo de linguagem Swift 6
Exemplo mínimo:
@Model public class Station {
var stationKey: Int16? = 0
}
extension Station {
static func allFD()->FetchDescriptor<Station> {
let predicate = #Predicate<Station> {value in
true
}
let descriptor=FetchDescriptor<Station>(predicate: predicate, sortBy: [SortDescriptor(\Station.stationKey)])
return descriptor
}
A ideia de ter "FetchDescriptors" definidos em uma extensão era poder usá-los tanto em Views quanto em código de "segundo plano".
Mas agora não tenho certeza de como proceder se eu quiser classificar também.
Obrigado por seus comentários e ideias.
Isso é algo que será corrigido para que o compilador trate os caminhos de chave como enviáveis, mas até então você pode silenciar o aviso no Xcode definindo Infer Sendable para Métodos e Literais de Caminho de Chave nas
Yes
configurações de compilação (pesquise por sendable) para seu projeto/destino ou se você estiver usando um pacote, adicioneVeja esta discussão ou a proposta 418