NSRange:不正确的行为。为什么?

发布于 2024-10-19 14:44:38 字数 181 浏览 4 评论 0原文

range.location 应该是 0。我对吗?

NSRange range;
range = [@"beer" rangeOfString:@"beer and vodka"];
if (range.location== NSNotFound)
{
    NSLog(@"Why?");
}

range.location should be 0. Am i right ?

NSRange range;
range = [@"beer" rangeOfString:@"beer and vodka"];
if (range.location== NSNotFound)
{
    NSLog(@"Why?");
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

懷念過去 2024-10-26 14:44:38

因为您在“beer”字符串中搜索字符串“beer and vodka” - 显然较长的字符串不存在于较短的字符串中,所以您得到了预期的输出。你需要的可能应该是反之亦然:

NSRange range = [@"beer and vodka" rangeOfString:@"beer"];
if (range.location == NSNotFound)
{
    NSLog(@"Why?");
}

Because you search for a string "beer and vodka" in "beer" string - obviously that longer string is not present in the shorter one, so you get expected output. What you need should probably be vice versa:

NSRange range = [@"beer and vodka" rangeOfString:@"beer"];
if (range.location == NSNotFound)
{
    NSLog(@"Why?");
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文