La sintassi NSLog(@"%@", ... ); funziona ed è utilizzata per ottenere informazioni sugli oggetti, ma non funziona su tipi dato C come struct CGRect o CGPoint, ad esempio. Per poter sfruttare NSLog(@"%@", ... ); anche su struct di tipo C possiamo appoggiarci a funzioni di conversione come NSStringFromCGRect() o NSStringFromCGPoint:
1 2 3 4 5 | CGrect mioRect = (CGRect){10,20,30,40}; CGPoint mioPoint = (CGPoint){32,64}; // NSLog( @"Info rettangolo: %@", NSStringFromCGRect(mioRect) ); NSLog( @"Info point: %@", NSStringFromCGPoint(mioPoint) ); |
Nello specifico è possibile perfezionare tale procedure scrivendosi delle piccole macro utili come:
1 | #define NSLogRect(rect) NSLog(@"%s: (%0.0f, %0.0f) %0.0f x %0.0f", #rect, rect.origin.x, rect.origin.y, rect.size.width, rect.size.height) |
Oppure:
1 2 3 4 | #define NSLogCGPoint(point) NSLog(@"%s: (%0.0f, %0.0f)", #point point.x, point.y) CGPoint mioPoint = (CGPoint){32,64}; NSLogCGPoint(mioPoint); |
Che darà come output:
1 | mioPoint: (32, 64) |








11
Non ci sono commenti per questo Post
Lascia un commento