Ios 确定swift中委托属性的类别

Ios 确定swift中委托属性的类别,ios,delegates,swift,Ios,Delegates,Swift,在斯威夫特的课堂上,我有一个问题,就是在一个代表后面。在我的应用程序中,有一个名为DataSource的类和一个名为DataSourceDelegate的协议,通常交给控制器管理 DataSource的子类可以来自单个源,或者如果它们包含多个DataSource实例,则它们必须符合DataSourceDelegate DataSource不符合DataSourceDelegate,但其某些子类符合。因此,为了确定根数据源,我检查委托的类。如果委托不是数据源或其任何子类,则返回true 代码: 问

在斯威夫特的课堂上,我有一个问题,就是在一个代表后面。在我的应用程序中,有一个名为DataSource的类和一个名为DataSourceDelegate的协议,通常交给控制器管理

DataSource的子类可以来自单个源,或者如果它们包含多个DataSource实例,则它们必须符合DataSourceDelegate

DataSource不符合DataSourceDelegate,但其某些子类符合。因此,为了确定根数据源,我检查委托的类。如果委托不是数据源或其任何子类,则返回true

代码:

问题是if语句抛出一个编译错误,表示:类型“DataSource”不符合协议“DataSourceDelegate”。还有其他方法可以检查这个吗


提前感谢您所做的一切,这是有效的:

if (dataSource.delegate as AnyObject?) is DataSource

代码的第一行出现错误:
protocoldatasourcedelegate:class
是的,但它产生的错误是不可理解的。@hlfcoding:Nope。这是Xcode 6 beta 5中声明纯类协议的正确语法。请注意,在开发过程中,您只需
打印(thatDelegateVariable)
,它就会通过名称告诉您它是哪个类。非常感谢,它工作得非常好。如果苹果能在某种程度上减少运营商的限制,那就太酷了。
if (dataSource.delegate as AnyObject?) is DataSource