Swift:
Debug-output afdrukken
Hoe te:
In Swift heb je een vriend aan de print()
functie. Makkelijk te gebruiken, het geeft je ogen op wat er in je code gebeurt.
var groet = "Hallo, speelplaats"
print(groet)
// Output: Hallo, speelplaats
let nummers = [1, 2, 3, 4, 5]
for nummer in nummers {
print(nummer)
}
// Output:
// 1
// 2
// 3
// 4
// 5
Maar wacht, er is meer! Heb je gedetailleerde debug-info nodig? debugPrint()
heeft je gedekt:
debugPrint(groet)
// Output: "Hallo, speelplaats"
Zie je die aanhalingstekens? debugPrint()
laat de bonen morsen met extra details over gegevenstypes en -structuur.
Diepe Duik
In de oude dagen van Objective-C gebruikten we NSLog
om spullen te loggen. Swift hield de zaken eenvoudig—print()
is je brood en boter voor standaard output, terwijl debugPrint()
de gekruide boter is voor gedetailleerde weergaven.
Interessant feit: Standaard output in Swift is niet alleen tekst—het kan elk type zijn dat voldoet aan CustomStringConvertible
of CustomDebugStringConvertible
. Deze protocollen laten je aanpassen hoe je objecten eruit zien wanneer ze hun verhalen vertellen door te printen.
Onder de motorkap gebruiken print()
en debugPrint()
String(describing:)
en String(reflecting:)
om je objecten in strings om te zetten. In principe gebruiken deze functies een spiegel om een selfie van je gegevens te nemen.
Alternatieven? Je hebt os_log
en NSLog
, maar deze zijn meer geschikt voor productie-niveau logging, niet het snelle en vuile debuggen waar we hier op jammen.
Zie Ook
- Apple’s Swift API-referentie voor printfuncties: Swift Standard Library: print(_:separator:terminator:)
- Een diepere kijk op loggen in Swift, GDPR en privacy overwegingen: Unified Logging and Activity Tracing
- Swift’s string interpolatie en aanpasbaarheid voor debugbeschrijvingen: CustomStringConvertible en CustomDebugStringConvertible