DEV Community

Cover image for NSLog (Debugging) Cheat Sheet
Kunal Kamble
Kunal Kamble

Posted on • Edited on

NSLog (Debugging) Cheat Sheet

Purpose of this cheat sheet is to explore debugging tools for logging.

Frequently used format specifiers:

Type Format specifier
Object (prints description) %@
NSInteger %ld
NSUInteger %lu
CGFloat %f
pointer %p

More format specifiers are available on: String Format Specifiers ~ Apple Documentation

Helper method to translate objects/structures into NSString:

Function Description
NSStringFromClass Returns the name of a class as a string.
NSStringFromCGRect Returns a string formatted to contain the data from a rectangle in {{x, y}, {width, height}} format.
NSStringFromCGSize Returns a string formatted to contain the data from a size data structure in {width, height} format.
NSStringFromCGPoint Returns a string formatted to contain the data from a point in {x, y} format.
NSStringFromRange Returns a string representation of a range in {location, length} format.

More (less used) methods:

  • NSStringFromSelector
  • NSStringFromProtocol
  • NSStringFromCGVector
  • NSStringFromMapTable
  • NSStringFromUIOffset
  • NSStringFromHashTable
  • NSStringFromCGAffineTransform
  • NSStringFromDirectionalEdgeInsets

Debugging wrapper for NSLog

#define Debug(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) 
Enter fullscreen mode Exit fullscreen mode

Log a backtrace of your stack

NSLog(@"%@", [NSThread callStackSymbols]); 
Enter fullscreen mode Exit fullscreen mode
2023-04-22 22:37:20.001544+0530 just-objc[5829:186391] ( 0 just-objc 0x000000010099dda8 -[ViewController viewDidLoad] + 84 <trimmed ...> 28 UIKitCore 0x0000000107ebeff0 -[UIApplication _run] + 868 29 UIKitCore 0x0000000107ec2f3c UIApplicationMain + 124 30 just-objc 0x000000010099e024 main + 120 31 dyld 0x0000000100b2d514 start_sim + 20 32 ??? 0x0000000100d85f28 0x0 + 4309147432 33 ??? 0xdf35000000000000 0x0 + 16083761644223594496 ) 
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
rational-bot-001 profile image
bot

Intersting!