Objective-C: NSLog() su struct C
giovedì 29 ottobre, 2009La 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:
-
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:
-
#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:
-
#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:
-
mioPoint: (32, 64)










19

Non ci sono commenti per questo Post
Lascia un commento