ios - 为什么 Apple 使用此 "if let"代码?

标签 ios iphone swift

<分区>

Apple 在他们的一个示例项目中有这段代码:

    let existingImage = cache.objectForKey(documentIdentifier) as? UIImage

    if let existingImage = existingImage where cleanThumbnailDocumentIDs.contains(documentIdentifier) {
        return existingImage
    }

为什么苹果要使用这个if let?简单地使用是不是更合乎逻辑

    if cleanThumbnailDocumentIDs.contains(documentIdentifier) {
        return existingImage!
    }

???!!

最佳答案

如果你使用

  let existingImage = cache.objectForKey(documentIdentifier) as? UIImage

if let existingImage = existingImage where cleanThumbnailDocumentIDs.contains(documentIdentifier) {
    return existingImage
}
  • 这将确保如果 existingImage == nil,它不会 执行return existingImage
  • 此外,if let 还从 UIImage? 解包 existingImageUIImage

关于ios - 为什么 Apple 使用此 "if let"代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32757469/

相关文章:

ios - 如何使用 NSURLSession 发布一些属性和图像

iphone - 从地址簿添加联系人时 EXC_BAD_ACCESS?

ios - SKColor clearColor 返回黑色?

ios - 有没有办法对 iOS 中嵌入的 YouTube 播放器隐藏 YouTube Logo ?

iphone - 在 iOS 中将 zip 作为附件添加到 MFMailComposeViewController 失败

iphone - 使用 OpenGL ES 在 iPhone 上播放视频?

ios - 在应用程序中收到通知时,PFInstallation 不是最新的

ios - 即使键盘关闭,也保持搜索栏取消按钮色调颜色

swift - 自定义对象的 UserDefaults 自定义对象

ios - iphone 应用程序中单个 viewController 的横向方向