你知道UIAlertView、UIActionSheet(以及它们各自的 delegate protocols) 在 iOS 8 中已经被废弃了吗?这是真的。在你的代码中按住 ⌘ 点击UIAlertView或者UIActionSheet,你就会看到最上面的注释:UIAlertViewis deprecated. UseUIAlertControllerwith apreferredStyleofUIAlertControllerStyleAlertinstead.你可能好奇为什么 Xcode 不直接警告你这个变化呢?别急,往下读:@availability(iOS,introduced=2.0)虽然类已经被废弃了,但在@availability属性中并没有表达出这一点。UIAlertView目前还是能用的。最开始的时候,UIAlertView充满了无底线的让步,牺牲格式和设计正确性来顺应开发者的喜好。它的delegate类型是在初始化函数中注释的 (delegate:(id /*),并且在 protocol 方法中实现了让人匪夷所思的概念——buttonAtIndex:的 "clicked" 而不是 "tapped";然后还提供了不限数量的参数来引入otherButtonTitles,因此 button 的索引管理变得非常痛苦;一个-show方法也根本不考虑 view 的层级关系.
...
继续阅读
(20)