gpt4 book ai didi

ios - iOS '.' 和 '->' 有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:31:30 25 4
gpt4 key购买 nike

好吧,我很困惑!我曾经使用 -> 每当我访问我的实例对象时,但现在我在我的应用程序中设置它们之后看到了:didFinishLaunching 像这样:

self->counter = [NSNumber numberWithFloat:0.0f];

在路上我被异常抛出,检查我的调试器并看到计数器指向 <non objective c object>

我将行更改为:

self.counter = [NSNumber numberWithFloat:0.0f];

现在我在调试器中看到我有另一个变量。

那么,这里发生了什么?

最佳答案

self->counter = [NSNumber numberWithFloat:0.0f]; 使用直接访问 ivar。对于 self,它等于 counter = [NSNumber numberWithFloat:0.0f]; 其中 counter 是一个 ivar。也就是说 self-> 是实例方法中的冗余范围限定。

self.counter = [NSNumber numberWithFloat:0.0f];[self setCounter:[NSNumber numberWithFloat:0.0f]]; 的语法糖。具体来说,该声明动态地向对象的计数器 setter 发送消息。 Although there are exceptions ,您应该倾向于在未处于部分构造/破坏状态时使用访问器。

关于ios - iOS '.' 和 '->' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com