76得票10回答
在协议中使用Swift的Equatable

我不认为这可以做到,但无论如何我会问一下。 我有一个协议:protocol X {} 还有一个类:class Y:X {} 在我的其余代码中,我使用协议X来引用所有内容。我希望能够在代码中做类似于以下的事情: let a:X = ... let b:X = ... if a == b {.....

63得票6回答
如何创建一个带有关联值的Swift枚举并使其具备可比性

我有一个带有关联值的枚举类型,我想为测试目的使其可比较,但不知道如何处理具有多个参数的枚举情况。 例如,下面概述了我知道用于使标题可比较的语法。 对于包含多个不同类型值的选项,这将如何工作?enum ViewModel { case heading(String) case ...

51得票13回答
如何比较CLLocationCoordinate2D

我需要一种比较两个CLLocationCoordinate2D的方法,但是当我尝试使用==时它无法工作。请问有人能帮我找到最好的比较方法吗?

46得票3回答
如何创建一个自定义对象集合(Swift)?

对于我的iOS应用程序,我有一个类似于以下的模型class Person { var Id: Int var Name: String init(id: Int, name: String?) { self.Id = id self.N...

34得票2回答
Swift协议实现Equatable

我有以下的协议:protocol Cacheable { //....// func identifier() -> String } 我能让Cacheable实现Equatable接口吗? 当我执行以下操作时:extension Cacheable: Equatabl...

30得票5回答
为什么协议运算符必须实现为全局函数?

我看到了这个Swift Equatable Protocol问题的答案,提到了==方法必须在全局范围内声明。 如果我不采用Equatable,我仍然可以声明==来测试我两种类型之间的相等性。// extension Foo: Equatable {} func ==(lhs: Foo, r...

30得票2回答
自定义类继承了NSCoding和NSObject,但Equatable类型的重写函数没有被调用

下面的FooBar类必须覆盖Equatable类型的==函数。 但是,在一个FooBar对象数组上调用contains不会导致自定义的==函数内部的断点被调用。还可能有另一个==函数覆盖了此自定义函数吗? 注意:由于FooBar必须从NSCoding和NSObject子类化,所以FooBa...

30得票4回答
Swift结构体不符合协议Equatable?

如何使一个结构符合协议 "Equatable"? 我正在使用 Xcode 7.3.1struct MyStruct { var id: Int var value: String init(id: Int, value: String) { self.id ...

29得票2回答
二元运算符“==”不能应用于两个操作数。

我的类使用协议Equatable。这个类看起来像这样:class Item: Equatable { let item: [[Modifications: String]] init(item: [[Modifications: String]]) { se...

23得票3回答
使用 Equatable 类与 flutter_bloc

为什么我们需要在flutter_bloc中使用Equatable类?还有,我们用props做什么?以下是在Flutter中使用bloc模式制作状态的示例代码。 为什么需要使用Equatable类与flutter_bloc一起使用?另外,props的作用是什么?下面是在Flutter中使用bl...