Gau*_*rma 9 core-data nsfetchrequest ios swift
以下代码不起作用:
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true, selector:"caseInsensitiveCompare")
Run Code Online (Sandbox Code Playgroud)
并给出以下错误:'NSInvalidArgumentException',原因:'不支持的NSSortDescriptor选择器:caseInsensitiveCompare'
似乎在Objective-C中工作正常.关于为什么会这样的任何想法?
编辑:看起来这可能与Core Data/SQLite无法实现.在这种情况下,获取数组并在之后的代码中对其进行排序是最好的选择吗?
小智 39
let sortDescriptor = NSSortDescriptor(key: "KeyName", ascending: true, selector: #selector(NSString.caseInsensitiveCompare))
Run Code Online (Sandbox Code Playgroud)
选择器caseInsensitiveCompare:带冒号,您可以将它与Core Data一起使用.
冒号在那里因为方法(它是一个实例方法NSString)接受一个参数(要与之比较的字符串).
可以在" 核心数据编程指南"中的" 持久存储类型和行为"中找到可与Core Data和SQLite存储一起使用的排序选择器列表 .
Swift 5、SwiftUI 语法
self._contacts = FetchRequest(
entity: Contact.entity(),
sortDescriptors: [
NSSortDescriptor(key: "name", ascending: true, selector: #selector(NSString.caseInsensitiveCompare(_:)))
],
predicate: predicate
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4316 次 |
| 最近记录: |