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