我有一个CoreData / SQLite应用程序,其中我有“父类别”和“类别”。我无法控制数据,某些“父类别”值具有尾随空格。
我可以使用CONTAINS
(或者我应该说它适用于CONTAINS
,但这是我无法使用的)。例如,我有两个条目,MEN和MENS。如果我使用CONTAINS
我将返回两个记录,你可以看到这将是一个问题。
我可以很容易地在我身边修剪,但谓词会将其与数据库进行比较并且不匹配。所以我的问题是如何在谓词中考虑空格,如果可能的话。
我有一个类别“MENS”,有人在应用程序中选择了它,并将其与数据库中的“MENS”进行比较。
答案 0 :(得分:1)
我会在进行查找之前修剪数据。您可以使用stringByTrimmingCharactersInSet
轻松完成此操作。通过事先做,你也可以避免任何性能损失。如果您使用CONTAINS
进行基于字符的比较,那可能会很昂贵。
所以,假设你的搜索字符串是“MEN”。
这是剥离任何狡猾角色的方法:
NSString *trimmed = [@"MEN " stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
还有whitespaceAndNewlineCharacterSet
可以在锡上做到这一点。
或者,您可以轻松创建自己想要修剪的自定义角色。
为此,请看一下:
NSCharacterSet Class Reference
和
Apple的String Programming Guide