【问题标题】:How to sort cell in TableView base on the Alphabets ? ( CoreData ) ( Swift 3 )如何根据字母对 TableView 中的单元格进行排序? (核心数据)(斯威夫特 3)
【发布时间】:2017-04-05 08:22:08
【问题描述】:

如何根据字母对单元格进行排序忽略 coreData 中的大写锁定?

这是我的尝试获取代码

函数尝试Fetch() {

    let fetchRequest: NSFetchRequest<Item> = Item.fetchRequest()  // fetch the Item.


    // display it by Sort.

    let priceSort = NSSortDescriptor(key: "price", ascending: true)
    let titleSort = NSSortDescriptor(key: "title", ascending: true)
    let dateSort = NSSortDescriptor(key: "created", ascending: false)


    if segment.selectedSegmentIndex == 0 {
        fetchRequest.sortDescriptors = [dateSort]

    } else if segment.selectedSegmentIndex == 1 {
        fetchRequest.sortDescriptors = [priceSort]

    } else if segment.selectedSegmentIndex == 2 {
        fetchRequest.sortDescriptors =  [titleSort]

    }

【问题讨论】:

  • NSSortDescriptor。但是你如何获取你的数据呢?你的代码是什么?
  • 只想按字母排序,忽略大写锁定。
  • 请在您获取数据的地方添加代码
  • @YuOn 你解决了吗,如果没有,请问核心数据的获取代码
  • @NiravD 还没解决,昨天到现在还在挣扎....

标签: xcode swift3


【解决方案1】:

当您想使用title 属性进行排序时,您只需要做一些小的更改,您需要使用NSSortDescriptorinit(key:​ascending:​selector:​) 而不是init(key:​ascending:​)

let titleSort = NSSortDescriptor(key: "title", ascending: true, selector: #selector(NSString.localizedCaseInsensitiveCompare))

【讨论】:

  • 所以我需要使用 let titleSort = NSSortDescriptor(key: , ascending: , selector: )
  • @YuOn YES 添加该选择器
  • @YuOn 你检查我的答案正确吗是let titleSort = NSSortDescriptor(key: "title", ascending: true, selector: #selector(NSString.localizedCaseInsensitiveCompare)) 不是let titleSort = NSSortDescriptor(key: "title", ascending: true, selector: (NSString.localizedCaseInsensitiveCompare(NSString)))
  • 非常感谢!!
【解决方案2】:

在获取事物数组(列表)的代码中,添加以下代码以按字母顺序排序。

class func fetchAllThingsFromCoreData() -> [Thing] {

    let context:NSManagedObjectContext = MyCoreDataManager.sharedInstance.managedObjectContext
    let request:NSFetchRequest<Thing> = self.fetchRequest()

    request.sortDescriptors = [NSSortDescriptor(key: "thingName", ascending: true)]
    let myThingsCoreDataArray = try? context.fetch(request)
    return myThingsCoreDataArray ?? []
}

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 2017-03-24
    • 2023-03-07
    相关资源
    最近更新 更多