We're going to start with the absolute easiest debugging technique, which is the
print() function. This prints a message into the Xcode debug console that can say anything you want, because users won't see it in the UI. The "scattershot" approach to bug fixing is to litter your code with calls to
print() then follow the messages to see what's going on.
You'll meet lots of people telling you how bad this is, but the truth is it's the debugging method everyone starts with – it's easy, it's natural, and it often gives you enough information to solve your problem. Use it with Swift's string interpolation to see the contents of your variables when your app is running.
print() several times already, always in its most basic form:
print("I'm inside the viewDidLoad() method!")
By adding calls like that to your various methods, you can see exactly how your program flowed.
print() is actually a bit more complicated behind the scenes. For example, you can actually pass it lots of values at the same time, and it will print them all:
print(1, 2, 3, 4, 5)
print() a variadic function, which you learned about previously. Here, though, it’s worth adding that
print()’s variadic nature becomes much more useful when you use its optional extra parameters:
The first of these,
separator, lets you provide a string that should be placed between every item in the
print() call. Try running this code:
print(1, 2, 3, 4, 5, separator: "-")
That should print “1-2-3-4-5”, because the
separator parameter is used to split up each item passed into
The second optional parameter,
terminator, is what should be placed after the final item. It’s
\n by default, which you should remember means “line break”. If you don’t want
print() to insert a line break after every call, just write this:
print("Some message", terminator: "")
Notice how you don’t need to specify
separator if you don’t want to.
SPONSOR Meet the new Instabug – more than just bug reporting! We help you build better apps and minimize your debugging time. With each bug report, we automatically capture details like network requests, repro steps, and session details. Get real-time crash reports with stack trace details and session data to help you catch and fix issues easily. And with our customizable in-app surveys, you’ll gather insightful user feedback and much more. Instabug is the fastest and easiest way to release with confidence. Start your free trial now! Start your free trial now!