gpt4 book ai didi

ios - 如何将 [NSManagedObject] 转换为 nsmutablearray (Swift)

转载 作者:可可西里 更新时间:2023-11-01 02:17:30 26 4
gpt4 key购买 nike

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

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 数组与 native 枚举器一起使用,例如

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 闭包中省略类型检查。也不需要检查 people > 0

更方便的方法是使用filtermap 函数。

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

关于ios - 如何将 [NSManagedObject] 转换为 nsmutablearray (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com