//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
最新推荐文章于 2023-07-31 19:31:49 发布
本文详细介绍了从Objective-C过渡到Swift的过程,包括注释标记、条件编译、字符串操作、API可用性检查等方面。通过示例代码展示了Swift的特性,如类和函数的标记、条件编译指令、字符串的插入和删除、多行字符串以及与NSString的交互。此外,还讨论了类继承、协议、多线程开发和资源管理等方面,帮助开发者更好地理解和掌握Swift编程。
摘要由CSDN通过智能技术生成