Swift开发实用技巧与优化策略
1. 确保方法退出前代码块的执行
1.1 问题描述
在某些情况下,我们需要确保在方法返回调用者之前执行特定的代码块,即使方法抛出异常也不例外。
1.2 解决方案
使用 defer 语法。在方法内部的 defer 块中放置的任何代码都保证在方法返回调用者之前执行,但会在方法中的 return 调用之后执行。当方法抛出异常时,此代码块也会被调用。
1.3 示例代码
enum Errors : Error{
case emptyString
}
func imageForString(_ str: String, size: CGSize) throws -> UIImage{
defer{
UIGraphicsEndImageContext()
}
UIGraphicsBeginImageContextWithOptions(size, true, 0)
if str.characters.count == 0{
throw Errors.emptyString
}
// draw the string here...
return UIGraphicsGetImageFromCurrentImageContext()!
}
1.4 验证方法
不建议在代码中到处添加 <
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



