//1.MARK、TODO、FIXME
//MARK: 类似于OC的#pragma mark
//MARK: - 类似于OC的#pragma mark -
//TODO: 用于标记未完成的任务
//FIXME: 用于标记待修复的问题
class Person1 {}
func test() -> Person1{
//TODO: 未完成
//或者
#warning("undo")
fatalError() //小技巧:只是想暂时编译通过
}
func test2() {
var age = 10
//FIXME: 有待修复
age += 20
}
class Person {
//MARK: - 属性
var age = 0
var weight = 0
var height = 0
//MARK: - 私有方法
//MARK: 跑步
private func run1() {}
private func run2() {}
//MARK: 走路
private func walk1() {}
private func walk2() {}
//MARK: - 公共方法
public func eat1() {}
public func eat2() {}
}
//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(<3) && swift(>=5)
//模拟器
#elseif targetEnvironment(simulator)
//可导入某模块
#elseif canImport(Foundation)
#else
#endif
//3.条件编译
//Build Setting搜 swift compiler - custom 不用改用系统的
#if DEBUG
//debug模式
#else
//release模式
#endif
//Build Setting搜 swift compiler - custom 用自定义的 将Active Compilation Conditions Debug 下的DEBUG 改为 DEBUGTEST, Other Swift Flags 下的Debug 加 -D OTHER ,其中改的DEBUG和加的OTHER都可随便写
//以下都是在debug下才会打印
#if DEBUGTEST
print("test")
#endif
#if OTHER
print("other")
#endif
//4.打印
log(20) //ViewController.swift_80_viewDidLoad() 20
//等价
log(20, file: #file, line: #line, fn: #function) //ViewController.swift_82_viewDidLoad() 20
//5.系统版本检测
if #available(iOS 10, macOS 10.12, *) {
//对于iOS平台只在iOS10及以上版本执行
//对macOS平台只在macOS 10.12及以上版本执行
//最后的*表示在其他所有平台都执行
}
//6.API可用性说明
@available(iOS 10, macOS 10.15, *)
class Person0 { }
class Student0 {
@available(*, unavailable, renamed: "study")
func study_() {}
func study() {}
@available(iOS, deprecated: 11)
@available(macOS, deprecated: 10.12)
二十一、从OC到swift
最新推荐文章于 2024-01-15 20:55:03 发布