我正在使用Gamekit在两台设备之间通过蓝牙发送数据。我想得到发送它的设备的名称,但如果名称是“Bob的iPhone”,我想切断“iPhone”。我首先检查以“iPhone”或“iPod Touch”结尾。
if ([name hasSuffix:@" iPhone"])
{
name = [name substringToIndex:[name length]-7];
}
else if ([name hasSuffix:@" iPod Touch"])
{
name = [name substringToIndex:[name length]-11];
}
但是当我为“s”做同样的事情时,它永远不会真实。撇号看起来与默认撇号略有不同。
if ([name hasSuffix:@"'s"])
{
name = [name substringToIndex:[name length]-2];
}
检测撇号是否有一些技巧?有没有办法可以做到这一点?
编辑: 左边的撇号是名称所包含的,但未注册hasSuffix:@“s”。右边的撇号是我添加的撇号。
答案 0 :(得分:1)
可能是编码字符串的情况。你应该确保关于这种情况的字符串
是's
还是´s
或是‘s
还是其他角色。
你可能还有其他一些导致你出现问题的角色。
这些是我的猜测。希望这可以帮助您找出问题所在。
答案 1 :(得分:0)
您需要NSString
中的rangeOfString:
方法。
if ([name rangeOfString:@"'"].location != NSNotFound)
{
...
}