关于 Objective-C 中的指针

发布于 2024-12-19 07:02:12 字数 181 浏览 1 评论 0原文

我偶然发现了以下内容,似乎无法弄清楚为什么会这样。请您解释一下为什么我不需要在 range 之前使用指针?

NSString *d = @"The quick brown fox";
NSRange range = [d rangeOfString:@"brown"];

I stumbled across the following and can't seem to work out why this works. Please can you explain why I don't need to use a pointer before range?

NSString *d = @"The quick brown fox";
NSRange range = [d rangeOfString:@"brown"];

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

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

发布评论

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

评论(1

何以心动 2024-12-26 07:02:12

NSString 是一种对象类型。所有对象类型都是指针,不能在堆栈上创建。 NSRange 是一个 C 结构体。结构可以在堆栈上创建,因此不一定都是指针。

没有一个好的指南来了解哪些是对象,哪些是结构。您只需在继续操作时检查每种类型即可。

NSString is an object type. All object types are pointers and can't be created on the stack. NSRange is a C-struct. Structs can be created on the stack, and thus aren't necessarily all pointers.

There isn't a good guide to know which ones are objects, and which are structs. You'll just have to check for each type as you move forward.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文