class abc{
var name = String()
init(name:String){
self.name = name
}
}
var obj = [abc]()
obj[0] = abc(name:"sun")
obj[1] = abc(name:"sharma")
答案 0 :(得分:2)
问题在于,您试图通过在您尝试访问它们时不存在的下标来访问数组的元素。
var obj = [abc]()
只是初始化一个空数组,因此你不能通过下标访问它的元素,因为它还没有任何元素。
您应该使用Array.append
将新元素添加到数组的末尾。
var obj = [Abc]()
obj.append(Abc(name:"sun"))
obj.append(Abc(name:"sharma"))
您还可以使用要存储在其中的元素直接创建阵列:
var obj = [Abc(name:"sun"),Abc(name:"sharma")]
填充数组后,您可以通过多种方式访问其元素。如果你想遍历数组,你通常会想要使用for...in..
循环:
for object in obj {
print(object.name)
}
如果要访问单个元素,可以使用数组下标执行此操作,但在使用索引之前,请确保索引不超过数组的大小。
let index = 1
if index < array.count { //safe to use index as subscript
print(obj[index])
}
您还应该遵循Swift命名约定,即类型为upperCamelCase(Abc
而不是abc
)。
答案 1 :(得分:0)
我认为你问的是创建一个对象数组..
真的很容易
考虑你有两个类,A类和B类
Class A{
var name:String
init(localName: String){
self.name = localName
}
}
Class B{
//here you can create an array of objects of class A
//this will create an empty array of objects of class A
var objList = [A]()
//to add data into this array u can use append
func addData(objA: A){
self.objList.append(objA)
}
func displayData(list : [A]){
for entry in list{
print(entry.name)
}
}
}