[英]Why can't I declare a variable and do not assign it any value in swift to be used later?
[英]Can I declare functions in Swift and later define their implementation?
來自Objective-C,我非常喜歡標頭文件,這些文件公開了一段代碼的接口。 Swift一直困擾着我,因為即使最有組織的代碼仍然傾向於將公共/私有API掩埋在其余的代碼中,這使您需要挖掘細節。
有什么實踐或技巧可以定義實現外部的類或模塊的公共接口? 現在,我只是在Swift文件的頂部進行評論,感覺很不可思議。
據我所知,您不能只在類中聲明一個方法並在Swift的其他地方實現它。
我覺得您希望這樣做是為了使表述更加清晰並組織您的方法。 為了在Swift中實現這一目標,我遵循一些技巧,我很樂意與您分享:
根據訪問權限(即公共,私有和內部)分組組織方法。 您希望客戶端首先查看公共方法,然后內部和最后一個私有方法。
您可以將相關方法組織在一起,以使其易於理解,維護和瀏覽。
有時候,打破以上規則將公共方法和私有方法進行分組(如果它們具有相關性並且具有很大的依賴性)是很好的。
您可以將執行特定任務的相關方法分組到擴展中。 我通常遵循這種模式來實現特定的協議或類中的委托。 您也可以在單獨的文件中執行此操作。
這不是您問題的直接答案,但我已嘗試通過針對類中的方法組織來解決其核心問題。
因此,我一直在這里探索這些選項,您似乎可以使用協議定義接口,並使您的類符合該協議。 有點麻煩,但是如果以公共接口為目標,那么就可以實現。
// Foo.swift
protocol PublicFoo {
func publiclyExposedMethod(arg:AnyObject) -> AnyObject
var publiclyExposedVariable:AnyObject
}
class Foo : PublicFoo {
var publiclyExposedVariable:AnyObject = // something
func publiclyExposedMethod(arg:AnyObject) -> AnyObject {
// do stuff...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.