我想知道
之间的区别 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
}
任何人都能详细描述和区分两者吗?
答案 0 :(得分:2)
两者都有不同的用法,它们无法相互比较。当您需要存储多个元素时,您应该使用数组,但如果您需要单个元素,则应选择单个默认初始化器。这取决于你的需要。根据它们在快速编程中的用法,两者都是最好的。
ExamCategory()
是您的类的默认初始值设定项,当使用带有圆形backets()的classname调用时,会为您的类调用init()
,并返回您的类的实例。
在您的示例ExamCategory()
中调用类ExamCategory
的初始化程序,并返回该类的一个实例,您已将其存储在var arr
var arr = ExamCategory()
...而
[ExamCategory]()
是类型ExamCategory
的数组初始值设定项。它(可以/必须)保存/存储类ExamCategory
或其子类的实例。
在您的示例中,[ExamCategory]()
是ExamCategory
元素的数组。您可以在此数组中的var arr
上方插入/添加。
var arrExamCategories = [ExamCategory]()
arrExamCategories.append(arr)
的Apple文档
答案 1 :(得分:0)
var arr = ExamCategory()
这意味着:ExamCategory类已初始化,此类的引用已存储在arr变量中。
var arrExamCategories = [ExamCategory]()
这意味着:您已初始化一个包含ExamCategory类对象的数组。
ex: arrExamCategories.append(arr) // var arr = ExamCategory()
有关详细信息,请参阅apple的swift文档。