5

我正在使用 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" 注册。右边的撇号是我添加的撇号。

替代文字

4

2 回答 2

1

这可能是编码字符串的情况。你应该确保关于这种情况的字符串

is it 'sor is it ´sor is it ‘sor some other character。

您可能还有其他一些导致您出现问题的角色。

这些是我的猜测。希望这可以帮助您找出问题。

于 2010-08-20T11:24:37.697 回答
0

You want the rangeOfString: method in NSString.

if ([name rangeOfString:@"'"].location != NSNotFound)
{
    ...
}
于 2010-08-20T07:02:01.520 回答