gpt4 book ai didi

objective-c - NSNotification 上的对象是否需要强制转换?

转载 作者:行者123 更新时间:2023-12-02 08:52:11 25 4
gpt4 key购买 nike

当我收到一个 NSNotification 时,我是否需要转换 notification.object?假设我知道 notification.object 将是 MyClass 的实例并且我执行以下操作:

MyClass *myClass = notification.object;

这里是否需要强制转换?上述分配与以下内容有何不同:

MyClass *myClass = (MyClass *)notification.object;

最佳答案

不,它完全没有必要,不会改变您程序的任何行为。转换仅在编译时发生,在指针的情况下,仅用于向编译器保证您知道对象的类型。

例如,如果您将类型为 Subclass 的变量设置为返回类型为 Superclass 的方法的结果,编译器可能会提示赋值,您知道您要取回的实际对象是 Subclass 类型。在那种情况下,您将转换到子类。例如,

MyViewController * vc = (MyViewController *)[someWindow rootViewController];

notification.object 的类型是 id,一个通用的对象指针,编译器非常乐意将这样的指针分配给任何其他类型的指针。

关于objective-c - NSNotification 上的对象是否需要强制转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7759354/

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