gpt4 book ai didi

ios - MyObject *objectOne = (MyObject *)recognizer.view;

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

这行代码做了什么?

MyObject *objectOne = (MyObject *)recognizer.view;

我对 (MyObject *) 感到困惑。

它是否有效地将 recognizer.view 指针转换为 MyObject

谢谢。

最佳答案

是的 (MyObject *) 正在将 recognizer.view 静态转换为 MyObject,这是一个 UIView。这允许您在 objectOne 上调用 MyObject 特定的方法/属性。如果没有转换,编译器将只允许您调用 UIView 方法。

这可能是不安全的,因为您假设 recognizer.view 是 MyObject 类型。如果这个假设不正确,可能会发生坏事。有一种更安全的方法可以做到这一点。

定义一个辅助方法来为您安全地转换:

static inline id MySafeCast(Class klass, id obj) {
return [obj isKindOfClass:klass] ? obj : nil;
}

如果您对类型的假设错误,该方法将返回 nil。

// objectOne will be nil if recognizer.view is not a MyObject
MyObject *objectOne = MySafeCast([MyObject class], recognizer.view);

关于ios - MyObject *objectOne = (MyObject *)recognizer.view;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16924557/

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