Ios 如何将[NSManagedObject]转换为nsmutable数组(Swift)
我正在我的应用程序中使用coredata。我在我的核心数据中存储了50个城市。现在我想使用搜索栏。这与array配合得很好。我正在为此使用过滤。这是我的代码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
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
函数而不是枚举循环,枚举循环的性能要高得多。你有什么错误?