我正在从核心数据中获取歌曲名称,例如不区分大小写。
predicateText = NSPredicate(format: "name CONTAINS[cd] %@", searchText)
问题是当我搜索示例时
没有你就无法生存
有些歌曲中的不能
用不同的字符集写成。有时撇号是用阿拉伯字符集写的,有时是用英文字母写的。因此,并非所有歌曲都能正确提取。
我是否有另外一种表达方式来获取歌曲名称,而与歌曲所使用的字符集无关?
我问这个问题是因为在该应用的Android版本中,无论字母的字符集如何,它都能正常工作。
答案 0 :(得分:0)
在apple stack exchange上阅读了此问题
实际上,所有这些都是因为从iOS 11开始,他们将默认的撇号和引号从此'
和"
更改为此’
和”
我没有解决方案,只能替换我从服务器下载的json
文件中的撇号,然后再将其保存到核心数据中。因此,当用户使用新的iOS默认键盘撇号进行搜索时,可以找到他要搜索的歌曲。
name = try container.decode(String.self, forKey: .name).replacingOccurrences(of: "'", with: "’")
artist = try container.decode(String.self, forKey: .artist).replacingOccurrences(of: "'", with: "’")