在Swift中过滤ManagedObject FetchResults的数组

时间:2019-01-19 21:08:56

标签: swift nsarray nspredicate nsmanagedobject

在Objective-C中,您可以按以下步骤过滤从核心数据中提取的结果数组:

NSString *brand = @"honda";
NSPredicate *predicate = [NSPredicate predicateWithFormat:
        @"brand like %@", brand]; 
NSArray *filteredArray = [results filteredArrayUsingPredicate:predicate];

我正在尝试在Swift中做类似的事情,但遇到各种错误:

let myResults = try context.fetch(fetchRequest)
let idPredicate = NSPredicate(format: "id >= 1000")
let idArray = (myResults as Array).filtered(using: idPredicate)

我曾尝试使用myResults as Sales之类的各种方式进行转换,但仍然会遇到各种各样的错误:

编辑:

在上述版本中,我获得了一系列修复建议,首先是将“ using”替换为“”,如果我接受任何建议,则会导致更多错误。当我不是以Array的形式写为Sales或以idArray的形式写:Sales时,出现“无法强制将Array强制转换为Sales”

在Swift 3或4中执行此操作的正确语法是什么?

0 个答案:

没有答案