[英]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.