[Swift]26、MARK、TODO、FIXME

1、标记MARK、TODO、FIXME

// MARK: 类似于OC中的 #pragma mark
// MARK: - 类似于OC中的 #pragma mark -
// TODO: 用于标记未完成的任务
// FIXME: 用于标记待修复的问题

2、条件编译

// 操作系统: macOS\iOS\tvOS\watchOS\Linux\Android\Windows\FreeBSD
#if os(macOS) || os(iOS)
// CPU架构:i386\x86_64\arm\arm64
#elseif arch(x86_64) || arch(arm64)
// swift版本
#elseif swift(<5) && swift(>=3)
// 模拟器
#elseif targetEnvironment(simulator)
// 可以导入某模块
#elseif canImport(Foundation)
#else
#endif

3、log日志打印

func log<T>(_ msg: T, file: NSString = #file, line: Int = #line, fn: String=#function) {
    #if DEBUG
    let prefix = "\(file)_\(line)_\(fn):"
    print(prefix, msg)
    #endif
}

4、系统版本检查

if #available(iOS 10, macOS 10.12, *) {
    // 对iOS平台,只有在iOS10以上版本执行
    // 对macOS平台,只有在macOS 10.12及以上版本执行
    // 最后的*表示在其他所有平台都执行
}

5、API可用性说明

@available(iOS 10, macOS 10.15, *)
class Person { }
struct Student {
    #warning("undo")
    @available(*, unavailable, renamed: "study")
    func study_() {}
    func study() {}
    @available(iOS, deprecated: 11)
    @available(macOS, deprecated: 10.12)
    func run() {}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容