Ios Swift返回错误';二进制运算符==不能应用于两个EKSourceType操作数';

Ios Swift返回错误';二进制运算符==不能应用于两个EKSourceType操作数';,ios,swift,ios8,Ios,Swift,Ios8,我在Xcode 6.3中有这样的代码: let store = EKEventStore() for source in store.sources() { let st: EKSourceType = source.sourceType! if st == EKSourceTypeLocal { localSource = source; } } 第五行(如果st..)给出编译器错误:“二进制运算符==不能应用于两个EKSourceType操作数”

我在Xcode 6.3中有这样的代码:

let store = EKEventStore()

for source in store.sources() {
    let st: EKSourceType = source.sourceType!
    if st == EKSourceTypeLocal {
        localSource = source;
    }
}
第五行(如果st..)给出编译器错误:“二进制运算符==不能应用于两个EKSourceType操作数”

如何检查源代码是否为本地代码(在Swift中)并将其编译?

如下:

if st.value == EKSourceTypeLocal.value

您不能直接将任何类或结构与静态值进行比较,因此始终使用其值或需要类或结构的实例进行比较

因此,您可以使用下面的方法进行比较

    for source in store.sources() {
    let st: EKSourceType = source.sourceType!
    if st == EKSourceTypeLocal.value {
        localSource = source;
    }
}

无需强制展开
source.sourceType
,它已经是一个隐式展开的可选选项,因此如果代码在没有帮助的情况下总是
nil
,那么代码将很好地崩溃:)