Artículos con la etiqueta 'estructura'

Objective-C: NSLog () de C struct

o CGPoint , ad esempio. La sintaxis NSLog(@"%@", ... ); que funciona y se utiliza para obtener información sobre los objetos, pero no funciona en C tipos de datos tales como la estructura CGRect o CGPoint , por ejemplo. o NSStringFromCGPoint : Para aprovechar NSLog(@"%@", ... ); también de tipo C. estructuras que pueden apoyarse en funciones de conversión como NSStringFromCGRect() o NSStringFromCGPoint :

1
2
3
4
5
CGRect ) { 10 , 20 , 30 , 40 } ; CGRect mioRect = (CGRect) {10, 20, 30, 40};
CGPoint ) { 32 , 64 } ; CGPoint mioPoint = (CGPoint) {32, 64};
/ /
"Info rettangolo: %@" , NSStringFromCGRect ( mioRect ) ) ; NSLog (@ "rectángulo de Información:% @", NSStringFromCGRect (mioRect));
"Info point: %@" , NSStringFromCGPoint ( mioPoint ) ) ; NSLog (@ "punto de información:% @", NSStringFromCGPoint (mioPoint));

En concreto, es posible perfeccionar los procedimientos correspondientes macros útiles pequeños, como:

1
# Definir NSLogRect (Rect) NSLog (@ "% s (% 0.0f,% 0.0f) 0.0f% 0.0fx%", # rect, rect.origin.x, rect.origin.y, rect.size.width , rect.size.height)

O bien:

1
2
3
4
# Definir NSLogCGPoint (punto) NSLog (@ "% s (% 0.0f,% 0.0f)", # punto.x punto, Point.y)

CGPoint ) { 32 , 64 } ; CGPoint mioPoint = (CGPoint) {32, 64};
; NSLogCGPoint (mioPoint);

Esto dará como resultado:

1
32 , 64 ) mioPoint: (32, 64)

Más información ...

Objective-C: una alternativa al uso de CGRectMake

CGRectMake() es una función (en realidad una línea # define) que se utiliza mucho sobre todo cuando los objetos son creados por el código o la interfaz gráfica de usuario. o UIImageView . CGRectMake() restituisce una struct (struttura di tipo) CGRect : Su uso está por lo tanto, a menudo asociada componentes de inicialización de UIKit , sino también a simple UIView o UIImageView . CGRectMake() devuelve una struct (tipo de estructura) CGRect :

1
2
3
4
5
struct {CGRect
CGPoint origen;
CGSize tamaño;
};
typedef struct CGRect CGRect;

: Que a su vez se compone de dos diferentes estructura CGPoint y CGSize :

1
2
3
4
5
6
7
8
9
10
11
12
13
struct {CGPoint
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;

Tamaños *. * /

struct {CGSize
CGFloat ancho;
CGFloat altura;
};
typedef struct CGSize CGSize;

. Eso, a su vez, otra vez, contienen tipos CGFloat , o los tipos de float . Si analizamos el código de CGRectMake () son los siguientes:

1
2
3
4
5
6
7
8
CG_INLINE CGRect
CGRectMake (CGFloat x, y CGFloat, ancho CGFloat, CGFloat altura)
{
CGRect rect;
y; rect.origin.x = x; rect.origin.y = y;
height; rect.size.width = ancho; rect.size.height = altura;
volver rect;
}

De ello se deduce, por tanto, que esta parte del código:

1
2
3
4
[ UIButton buttonWithType : UIButtonTypeRoundedRect ] ; UIButton gbutton * = [UIButton buttonWithType: UIButtonTypeRoundedRect];
12 , 409 , 100 , 40 ) ; gbutton.frame = CGRectMake (12, 409, 100, 40);
@ "Press" forState : UIControlStateNormal ] ; [Gbutton setTitle: @ "Prensa" forState: UIControlStateNormal];
gbutton ] ; [MainWindow addSubview: gbutton];

Con razón se puede escribir como:

1
2
3
4
[ UIButton buttonWithType : UIButtonTypeRoundedRect ] ; UIButton gbutton * = [UIButton buttonWithType: UIButtonTypeRoundedRect];
CGRect ) { 12 , 409 , 100 , 40 } ; gbutton.frame = (CGRect) {12, 409, 100, 40};
@ "Press" forState : UIControlStateNormal ] ; [Gbutton setTitle: @ "Prensa" forState: UIControlStateNormal];
gbutton ] ; [MainWindow addSubview: gbutton];

Sólo para acelerar las cosas 'se ejecuta el código ... :)

Más información ...


Deje de SOPA