由于字符集,从核心数据谓词问题中获取数据

时间:2019-01-30 11:22:39

标签: swift core-data nspredicate

我正在从核心数据中获取歌曲名称,例如不区分大小写。

predicateText = NSPredicate(format: "name CONTAINS[cd] %@", searchText)

问题是当我搜索示例时

  

没有你就无法生存

  

不能

有些歌曲中的

用不同的字符集写成。有时撇号是用阿拉伯字符集写的,有时是用英文字母写的。因此,并非所有歌曲都能正确提取。

我是否有另外一种表达方式来获取歌曲名称,而与歌曲所使用的字符集无关?

我问这个问题是因为在该应用的Android版本中,无论字母的字符集如何,它都能正常工作。

1 个答案:

答案 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: "’")