按字符串排序核心数据实体(Swift3)

时间:2018-01-07 16:15:17

标签: core-data nspredicate swift4

这是我的代码:

let fetche:NSFetchRequest<Location> Location.fetchRequest()
let sort = NSSortDescriptor(key:#keyPath(Location.locationName), ascending:  true)
fetche.sortDescriptors = [sort]

let predicate1 = NSPredicate(format: "countryId CONTAINS %@ ",results.countryId!)
fetche.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [predicate1])

我需要通过位置名称中的字符串“Cho”对数据进行排序。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的评论,您的位置名称包含命名国家/地区的字符串(“美国”,“KSA”,“巴勒斯坦”等),还有一个说“选择国家/地区”的地址名称,并且您想要要知道如何将“选择国家......”排序到列表顶部。

理想情况下,您的数据模型只包含数据。由于“选择国家/地区”不是位置名称,因此不应包含在国家/地区列表中。如果您想在国家/地区列表上方显示此文字,则有两个更好的选择:

  1. 请勿在选择器中包含该文本。而是将其放在UILabel
  2. 中的选择器上方或旁边
  3. 如果要在选择器中包含该文本,请编写选择器委托,以便为第一个条目返回“选择国家/地区”,然后将所有其他行用于您的国家/地区列表。
  4. 有些方法可以按照您的建议对列表进行排序,但没有良好方式。