Ios 如何将[NSManagedObject]转换为nsmutable数组(Swift)

Ios 如何将[NSManagedObject]转换为nsmutable数组(Swift),ios,swift,core-data,ios9,nsmanagedobject,Ios,Swift,Core Data,Ios9,Nsmanagedobject,我正在我的应用程序中使用coredata。我在我的核心数据中存储了50个城市。现在我想使用搜索栏。这与array配合得很好。我正在为此使用过滤。这是我的代码 arrcity.enumerateObjectsUsingBlock({ (obj, _, _) -> Void in if let city : SelectCityModel = obj as? SelectCityModel { if city.c

我正在我的应用程序中使用coredata。我在我的核心数据中存储了50个城市。现在我想使用搜索栏。这与array配合得很好。我正在为此使用过滤。这是我的代码

arrcity.enumerateObjectsUsingBlock({ (obj, _, _) -> Void in

            if let city : SelectCityModel = obj as? SelectCityModel
            {
                if city.city.lowercaseString.rangeOfString(self.searchtext.lowercaseString) != nil
                {
                    self.searchcity?.addObject(city)
                }
            }
        })
现在我想做同样的过程,但我有[nsmanagedobject]人员。那么我该怎么做呢。如果有任何方法可以将[NsmanagedObject]转换为nsmutablearry,这将很容易

这是我的密码

if (people.count > 0)
        {

            people.enumerateObjectsUsingBlock({ (obj, _, _) -> Void in

                if let city : SelectCityModel = obj as? SelectCityModel
                {
                    if city.city.lowercaseString.rangeOfString(self.searchtext.lowercaseString) != nil
                    {
                        self.searchcity?.addObject(city)
                    }
                }
            })

        }

但是这里var people=NSManagedObject那么我如何转换它呢?

NSMutableArray
与Swift数组无关

例如,您可以将Swift数组与本机枚举器一起使用

people.forEach { [unowned self] (object) -> () in
  if object is SelectCityModel
  {
    if object.city.lowercaseString.rangeOfString(self.searchtext.lowercaseString) != nil
    {
      self.searchcity?.addObject(city)
    }
  }
}
如果用户总是
[SelectCityModel]
在获取行中将其转换为该类型,并在
forEach
闭包中忽略类型检查。也不需要检查
人员>0

更方便的方法是使用
过滤器
映射
功能

self.searchcity = people.filter({$0.city.lowercaseString.rangeOfString(self.searchtext.lowercaseString) != nil}).map{ $0.city }

NSMutableArray
与Swift数组无关

例如,您可以将Swift数组与本机枚举器一起使用

people.forEach { [unowned self] (object) -> () in
  if object is SelectCityModel
  {
    if object.city.lowercaseString.rangeOfString(self.searchtext.lowercaseString) != nil
    {
      self.searchcity?.addObject(city)
    }
  }
}
如果用户总是
[SelectCityModel]
在获取行中将其转换为该类型,并在
forEach
闭包中忽略类型检查。也不需要检查
人员>0

更方便的方法是使用
过滤器
映射
功能

self.searchcity = people.filter({$0.city.lowercaseString.rangeOfString(self.searchtext.lowercaseString) != nil}).map{ $0.city }

这是我的获取行let results=try moc.executeFetchRequest(personfetch)people=results as![NSManagedObject]@vadian我如何将其存储在阵列中只需将
people=结果写为![SelectCityModel]
然后您可以删除
对象是SelectCityModel
检查它是否正常工作可以将Nsmanagedobject强制转换为nsdictionary??在Swift中,本机集合类型更易于处理。您甚至可以使用
filter
函数而不是枚举循环,枚举循环的性能要高得多。您遇到了什么错误?这是我的获取行let results=try moc.executeFetchRequest(personfetch)people=results as![NSManagedObject]@vadian我如何将其存储在阵列中只需将
people=结果写为![SelectCityModel]
然后您可以删除
对象是SelectCityModel
检查它是否正常工作可以将Nsmanagedobject强制转换为nsdictionary??在Swift中,本机集合类型更易于处理。您甚至可以使用
filter
函数而不是枚举循环,枚举循环的性能要高得多。你有什么错误?