[英]Swift Extensions
我很好奇為已經可以添加代碼的類編寫擴展的目的是什么?
例如,在Ray Wenderlich的AlamoFire教程中,
他有一個ViewController類,但是他為其網絡功能和UIImagePickerControllerDelegate
方法編寫了該ViewController的擴展。 他編寫擴展的唯一原因是為了將代碼分成邏輯位嗎?
這是常見的做法還是個人喜好?
蘋果也這樣做。 如果看一下代碼(比如說Array
結構),您會發現對協議的所有符合都封裝在擴展中。
唯一的區別是您的代碼可以更好地分離。 但這確實取決於您。
我不確定這是否是常見的做法,但我知道我這樣做是因為它會創建分隔的代碼。 如果您需要某些東西,只需轉到指定的分機。 但是,我相信這只是個人喜好。
未提及一種用途:將您無權訪問的源代碼添加到源代碼中。
這是Protocol-Oriented Programming
,這里有一些有用的鏈接: https : //developer.apple.com/videos/play/wwdc2015/408/ https://www.raywenderlich.com/109156/introducing-protocol-oriented-programming-迅捷2
這是一個約定,Apple親自遵循。
我個人非常喜歡它,因為它使您可以將大型整體類分解為更小,更易於管理的部分。
特別是,擴展到單獨的協議一致性使您的代碼更具可讀性。 它的作用與Objective-C中的#pragma mark
預處理器宏相似。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.