我的 Swift 3.0 心愿单

Swiftkelby • 于 2015-10-01 07:46:00 +0800 • 最后由 hugrup2015-10-02 01:56:06 +0800 2110 阅读

原文链接 Wishlist for Swift 3.0,下文只是简单描述,并非翻译。

一对多消息订阅

目前,Swift 主要提供 3 种方式:delegation, NSNotifications 和 KVO,可用于数据更改后,做出对应处理。(在这里,统一简单理解为“发布者 - 订阅者”模式)

只有 delegation 是纯 Swift 实现,但它只支持一对一订阅。

NSNotifications 和 KVO 都是 Objective-C 实现,只能通过一定手段可以在 Swift 里运用。并且,在 API 上,它们还有很多不足之处。

尽管通过第三方,或其它手段可以类似功能,但它们往往带着很多弊端,或约束条件,我仍然希望于 Swift 能够提供。

我希望 Swift 能够让我这么干:

swift var delegates: WeakCollection<MyDelegateProtocol>

改良调试器

可能是我读书少,我觉得对比 Objective-C 而言,Swift 的调试器还十分不稳定,并且也没加入针对Swift特性的调试功能

举例:吧啦、吧啦……

更灵活的集合约束

对象既能继承于某个类,又能遵行一个或多个类,比如这样:

swift public var viewControllers: [MyProtocol<UIViewController>]

而不是现在的:

```swift public var viewControllerItems: [MyProtocol] // ...

protocol MyProtocol { func viewController() -> UIViewController func someOtherMethod() -> UIColor } ```

更灵活的扩展集合约束

一句话描述,我想实现以下功能:

swift extension Dictionary where Key:String, Value:JSONEncodable { // blah.... }

Key 是字符串,Value 可为 JSON 格式。

指定类型抛异常

目前,在很多地方,如果不看源代码,我只能靠猜、或文档,才能知道某段代码会抛出何种异常。

回复: 1
  • hugrup 2015-10-02 01:56:06 +0800 1

    现在的概念已经快记不住了,再复杂下去写代码都得配个手册了···

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,见 Emoji cheat sheet
  • @name 会链接到用户页面,并会通知他
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
Ctrl+Enter