向自定义类发出强制转换

Posted

技术标签:

【中文标题】向自定义类发出强制转换【英文标题】:Issue casting to custom class 【发布时间】:2016-05-19 06:38:31 【问题描述】:

我正在使用these 两个libraries。

我的目标是让玩家进入轮播视图的每个单元格。到目前为止,我一直在关注iCarousel repo 中的示例。

如果您查看git 存储库中的示例,您将看到该单元已创建并被引用。

在我正在尝试的重用视图中引用播放器

let player: Player
    if view == nil 
       player = Player()
       //Do stuff with player
     else 
       player = view.viewWithTag(1) as! Player
    

但我收到错误:从 UIView 转换为不相关类型 'Player' 总是失败

感谢任何帮助

【问题讨论】:

Player 是 UIViewController,而不是 UIView。 我没有提到我也尝试投射到 UIViewController。我得到“无法将类型 'UIViewController' 的值分配给类型 Player 【参考方案1】:

view.viewWithTag(1) 的调用返回UIView,但PlayerUIViewController 的子类,它们不相关,因此您不能从一个转换到另一个。轮播需要UIViews,因此您不能使用Player 类。

【讨论】:

以上是关于向自定义类发出强制转换的主要内容,如果未能解决你的问题,请参考以下文章

c#中泛型集合怎样写强制类弄转换

C# 自定义 DynamicObject 强制转换为派生对象

向上强制转换和向下强制转换

JAVA类类型强制类型转换失败,知道的告诉下,谢谢

泛型和强制转换 - 不能将继承的类强制转换为基类

JAVA中如何对父类对象强制转换子类对象的引用