0%

Swift Annotating

除了普通的代码注释外,编译器通常也会提供一些辅助开发的注释,例如TODOFIXMEERROR之类的注释,这些注释可以被编译器识别到,并提供一些友好提示,我们应该多利用这些编译器的特性来辅助我们日常的开发

TODO

1
2
3
4
func takePicture() -> Bool {
// TODO: Do camera stuff
return true
}

FIXME

1
2
3
4
func increment(_ num: Int) -> Int {
// FIXME: Make this increment the input
return num
}

warning

通过warning提示警告⚠️,可以编译通过

1
2
3
4
5
func increment(_ num: Int) -> Int {
// FIXME: Make this increment the input
#warning("Incorrect result returned")
return num
}

error

error警告会编译不通过

1
2
3
4
5
6
7
func readArr(_ arr: [Int]) {
for i in 0…arr.count {
if i == arr.count {
#error(“err”)
}
}
}

模拟器

在模拟器调试的特殊代码,相当于宏隔离,模拟器的代码不会编译到真机

1
2
3
4
5
6
7
8
@discardableResult
func takePicture() -> Bool {
#if targetEnvironment(simulator)
return false
#else
return true
#endif
}