如何填充自定义对象数组

时间:2017-12-13 17:00:39

标签: arrays swift object

class abc{
    var name = String()

     init(name:String){
        self.name = name
     }
}

var obj = [abc]()
obj[0] = abc(name:"sun")
obj[1] = abc(name:"sharma")

2 个答案:

答案 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)
        }
    }

}