How to print an array of objects in Swift with example

Multiple ways to print an array of objects in swift code examples

  • Iterate array using for loop and print an object, each object overrides the description method
  • dump method

Sometimes, We have an array of objects and want to print the object values for debugging purposes.

For example, Let’s declare an object of a Student class

import Foundation
class Student {
    var marks: Int =  0
    var id: Int;
    init ( _ id: Int, _ marks: Int){
        self.marks = marks
        self.id=id
    }

}

Create an array of students with default values.

let students = [Student(11,40),Student(21,99),Student(10,89)]
print(students)

Displays the objects using print functions shown below

[main.Student, main.Student, main.Student]

It is not useful for debugging to know what value objects contain at runtime.

There are multiple ways to print an array of objects.

Swift array of objects print values

  • using for loop

One of the ways, to print an object is by using for loop

Iterate each object using for loop and print the object.

import Foundation
class Student :CustomStringConvertible{
var marks: Int = 0
var id: Int;
init ( _ id: Int, _ marks: Int){
self.marks = marks
self.id=id
}
var description : String {
return "id :\(id) marks \(marks)"

    }

}

let students = [Student(11,40),Student(21,99),Student(10,89)]
for the student in students {
print(student)
}

Output:

id :11 marks 40
id :21 marks 99
id :10 marks 89

To print object properties, implement CustomStringConvertible and provide implements description property as described in print object in swift

or you can use print directly an array using print

print(students)

Output:

[id :11 marks 40, id :21 marks 99, id :10 marks 89]
  • dump method

you can use the dump method directly as given below

dump(students)
3 elements
  ▿ id :11  marks 40 #0
    - marks: 40
    - id: 11
  ▿ id :21  marks 99 #1
    - marks: 99
    - id: 21
  ▿ id :10  marks 89 #2
    - marks: 89
    - id: 10