美文网首页Books Notes
《Swifter Tips》Notes

《Swifter Tips》Notes

作者: 萌面大道 | 来源:发表于2017-04-08 01:50 被阅读272次

    由于种种原因,简书等第三方平台博客不再保证能够同步更新,欢迎移步 GitHub:https://github.com/kingcos/Perspective/。谢谢!

    Learn by coding.

    Date Notes Swift Xcode
    2017-04-08 首次提交 3.1 8.3
    2018-01-11 Swift 4 Update 4.0.3 9.2

    Preface

    《Swifter Tips》是我在很早(大约 Swift 1.0)时就买入的一本电子书。也是在那个时候知道了喵神(@onevcat),从打印《Swifter Tips》的 Swift 2.0 版本,到现在看 Swift 3.0 版本,真的是感叹人的拖延症太可怕。为了保护版权,本文不会涉及书中的具体内容,只做我个人不熟悉部分的摘要,代码也经过了我的个人验证,且有所改动,适合搭配 Xcode 9.2 & Swift 4.0 食用。

    Swift 新元素

    • mutating in Protocol
      • struct/enum 遵守的协议,方法需使用该修饰符,才可在其中改变自身的变量
    • precedencegroup & associativity & higherThan/lowerThan & prefix/postfix/infix
    • 字面量(Xcode 总是在这里崩溃,无法给出代码测试)LiteralType
    • indirect

    从 Objective-C/C 到 Swift

    • swift_once_block_invoke
    • 条件编译
      • #if #elseif #else #endif
      • os(macOS/iOS/tvOS/watchOS/Linux/Android/Windows)
      • arch(x86_64/arm/arm64/i386)
      • swift(>=2.0)
      • DEBUG
      • 可使用 || 连接多个条件
      • #if FREE_VERSION
        • 免费版:Build Settings -> Swift Compiler - Custom Flags -> Other Swift Flags: 添加 -D FREE_VERSION
    • weak 弱引用
      • delegate
      • self 闭包
    • @autoreleasepool
    • COpaquePointer
    • KVO - slazyk/Observable-Swift
    • GNU C 声明扩展
    • @_silgen_name
    • Toll-Free Bridging & Unmanaged

    Swift 与开发环境及一些实践

    • Swift REPL
    • debugPrint()
    • public func fatalError(_ message: @autoclosure () -> String = default, file: StaticString = #file, line: UInt = #line) -> Never
    • Framework
    • SwiftyJSON
    • 虚函数表(vtable)
    • #file #line #column #function
    • 溢出:&+ &- &* &/ &%
    • @testable import ...: XCTest access internal

    Reference

    也欢迎您关注我的微博@萌面大道V & 简书

    相关文章

      网友评论

        本文标题:《Swifter Tips》Notes

        本文链接:https://www.haomeiwen.com/subject/vfqqattx.html