当前位置: 首页 > 面试题库 >

在Swift中过滤自定义对象的数组

印子平
2023-03-14
问题内容

我正在尝试快速过滤自定义对象的数组,以获取具有我要隔离的属性的数据子集。我的代码如下。

func generateSubset( dataPool : [CustomObject]) -> [CustomObject]? {

            let subsetData = dataPool.filter{(includeElement:CustomObject)-> Bool in
                return contains(includeElement.position, "TEACHER")
            }

        return subsetData
    }

我的自定义对象如下:

   class CustomObject :  {
        var position : String?

        init(){
          position = ""
        }
    }

但是,尝试编译此代码时,Xcode引发的错误是:

Cannot invoke 'filter' with an argument list of type [CustomObject] -> Bool

我正在使用Swift 1.2,似乎无法弄清楚自己在做什么。任何帮助,将不胜感激。


问题答案:

在Swift 1.2中,filter是一个全局函数,因此您不能说dataPool.filter(...)。(在Swift 2中,这将起作用。)

此外,contains不能与此类字符串一起使用。我建议使用rangeOfString:NSString中的方法:

let teachers = filter(dataPool) { // in Swift 2 this would be "dataPool.filter {"
    return $0.position!.rangeOfString("TEACHER") != nil
}


 类似资料:
  • 我有一个名为“MyArray”的数组。在这个数组中,我有来自一个自定义NSObject类的几个对象,其中我有两个名为“name”和“age”的属性。现在我要按照属性“name”的字母顺序对数组中的对象进行排序。我知道如何在Objective-C中做到这一点,但我真的不知道如何在Swift中做到这一点。如果有人能帮我就太好了。

  • 我可以调试这个代码和逻辑路径似乎是正确的。如果我尝试搜索,我会发现带有或的文档,但是没有结果,例如,。 我想念什么?

  • 演示在网关追加一个header public class CustomFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { // 演示在网关追加heade

  • SOFARPC 提供了一套良好的可扩展性机制,为各个模块提供 SPI 的能力。 SOFARPC 对请求与响应的过滤链处理方式是通过多个过滤器 Filter 来进行具体的拦截处理,该部分可由用户自定义 Filter 扩展,自定义 Filter 的执行顺序在内置 Filter 之后。具体方式如下: Bolt Filter 新建自定义 Filter 。 public class CustomFilter

  • 问题内容: 我在Swift中有一组对象。每个对象都有餐厅的属性,例如名称,类型,位置等。如果我想将数组中所有包含类型的对象保留为“ Sushi”,该如何过滤数组。 具有2个对象的示例数组。过滤器应保留第一个对象(类型:sushi): 当前代码(但我不确定过滤器是否可以搜索的数组): 问题答案: 您的数组,是一个对象数组。因此,对于数组,您可以执行以下操作: 基于我们正在处理自定义对象的假设,我的原

  • 问题内容: 我有一个自定义类,定义如下: 现在我有一个数组。该字段对于每个对象都是唯一的。我需要检查数组并从中删除所有重复项,从本质上确保数组中的所有对象都具有唯一的。我已经看到了一些使用的解决方案,但是我不确定如何在这里调整它们。我也知道,但这似乎不适用于自定义对象数组。 问题答案: 您可以使用一组字符串来完成此操作,如下所示: 想法是保留一组到目前为止我们已经看到的所有ID,循环遍历所有项目,