首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串不相等的XCTAssert

字符串不相等的XCTAssert
EN

Stack Overflow用户
提问于 2014-11-30 05:32:06
回答 1查看 460关注 0票数 2

为什么会这样?

代码语言:javascript
复制
var sb = NSStoryboard(name: "Main", bundle: nil)
var wc = sb?.instantiateControllerWithIdentifier("pref") as NSWindowController
XCTAssertEqual(wc.window?.title, "Preferences", "Preferences window must have title Preferences")

出现Type 'String?' does not conform to protocol 'Equatable'错误,而

代码语言:javascript
复制
 var sb = NSStoryboard(name: "Main", bundle: nil)
 var wc = sb?.instantiateControllerWithIdentifier("pref") as NSWindowController
 XCTAssert(window.window?.title == "Preferences", "Preferences window must have title Preferences")

不是吗?

EN

回答 1

Stack Overflow用户

发布于 2014-11-30 06:13:13

创建Equatable Optional<T>并不是完全可能的,因为T本身可能不是Equatable,并且不能在实例声明中进行约束。因此,Optionals的==操作符是这样重载的

代码语言:javascript
复制
func ==<T : Equatable>(lhs: T?, rhs: T?) -> Bool

但是没有相应的Equatable实例来支持它。最终的结果是,Optionals可以与==进行比较,但可能无法提供给XCTAssertEqual等泛型Equatable类型的方法。具有真实约束的类型系统的另一个很好的论点是...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27207370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档