簡體   English   中英

[Classname]() 和 Classname() 之間有什么區別?

[英]what is difference between [Classname]() and Classname() in swift?

我想知道兩者之間的區別

    var arr = ExamCategory() 
             &
    var arrExamCategories = [ExamCategory]()

請問為什么這樣聲明,應該使用哪個更好?

我的ExamCategory類是這樣的。

class ExamCategory: NSObject {

    var CategoryId: Int?
    var CategoryName:String?
    var TotalSection: Int?
    var ImageUrl: String?

    override init() {

    }

    init(dict:[String:Any]) {
        super.init()

        CategoryId = dict["categoryId"] as? Int
        CategoryName = dict["categoryName"] as? String
        TotalSection = dict["totalSection"] as? Int
       ImageUrl = dict[""] as? String
    }
  .....And So On
}

誰能詳細描述和區分兩者?

兩者用途不同,不能相互比較。 當您需要存儲多個元素時,您應該使用數組,但如果您需要單個元素,您應該選擇單個默認啟動器。 這取決於您的需要。 根據它們在 swift 編程中的用法,兩者都是最好的。

ExamCategory()是您的類的默認初始值設定項,它在使用 classname 和 round backets () 調用時為您的類調用init() () 並返回您的類的實例。

在您的示例中, ExamCategory()調用類ExamCategory初始化ExamCategory並返回該類的單個實例,該實例已存儲在var arr

var arr = ExamCategory() 

盡管...
[ExamCategory]()是一個類型為ExamCategory的數組初始值ExamCategory 它(可以/必須)持有/存儲類ExamCategory或其子類的實例。

在您的示例中, [ExamCategory]()是一個包含ExamCategory元素的ExamCategory 您可以在此數組中的var arr上方插入/添加。

var arrExamCategories = [ExamCategory]()
arrExamCategories.append(arr)

這是初始化數組(集合類型)的蘋果文檔

var arr = ExamCategory() 

這意味着: ExamCategory 類已被初始化,並且該類的引用已存儲在 arr 變量中。

var arrExamCategories = [ExamCategory]()

這意味着:您已經初始化了一個包含 ExamCategory 類對象的數組。

ex: arrExamCategories.append(arr) // var arr = ExamCategory()

有關更多詳細信息,請參閱蘋果的 swift 文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM