iOS: objetivo C
El lenguaje utilizado en el desarrollo de iOS es el objetivo C. Es un lenguaje orientado a objetos y, por lo tanto, sería fácil para aquellos que tienen alguna experiencia en lenguajes de programación orientados a objetos.
Interfaz e implementación
En Objective C, el archivo donde se realiza la declaración de clase se llama interface file y el archivo donde se define la clase se llama implementation file.
Un archivo de interfaz simple MyClass.h se vería así:
@interface MyClass:NSObject {
// class variable declared here
}
// class properties declared here
// class methods and instance methods declared here
@end
El archivo de implementación MyClass.m sería el siguiente -
@implementation MyClass
// class methods defined here
@end
Creación de objetos
La creación de objetos se realiza de la siguiente manera:
MyClass *objectName = [[MyClass alloc]init] ;
Métodos
El método se declara en el objetivo C de la siguiente manera:
-(returnType)methodName:(typeName) variable1 :(typeName)variable2;
A continuación se muestra un ejemplo.
-(void)calculateAreaForRectangleWithLength:(CGfloat)length
andBreadth:(CGfloat)breadth;
Tal vez se pregunte qué andBreadthcadena es para; en realidad es una cadena opcional, que nos ayuda a leer y comprender el método fácilmente, especialmente en el momento de la llamada. Para llamar a este método en la misma clase, usamos la siguiente declaración:
[self calculateAreaForRectangleWithLength:30 andBreadth:20];
Como se dijo anteriormente, el uso de andBreadth nos ayuda a comprender que la amplitud es 20. Self se usa para especificar que es un método de clase.
Métodos de clase
Se puede acceder a los métodos de clase directamente sin crear objetos para la clase. No tienen variables ni objetos asociados. A continuación se muestra un ejemplo.
+(void)simpleClassMethod;
Se puede acceder usando el nombre de la clase (supongamos que el nombre de la clase es MyClass) de la siguiente manera:
[MyClass simpleClassMethod];
Métodos de instancia
Solo se puede acceder a los métodos de instancia después de crear un objeto para la clase. La memoria se asigna a las variables de instancia. A continuación se muestra un ejemplo de método de instancia.
-(void)simpleInstanceMethod;
Se puede acceder después de crear un objeto para la clase de la siguiente manera:
MyClass *objectName = [[MyClass alloc]init] ;
[objectName simpleInstanceMethod];
Tipos de datos importantes en el objetivo C
No Señor. | Tipo de datos |
---|---|
1 | NSString Se utiliza para representar una cadena. |
2 | CGfloat Se utiliza para representar un valor de punto flotante (también se permite el flotador normal, pero es mejor utilizar CGfloat). |
3 | NSInteger Se utiliza para representar números enteros. |
4 | BOOL Se utiliza para representar booleanos (YES o NO son tipos BOOL permitidos). |
Impresión de registros
NSLog: se utiliza para imprimir una declaración. Se imprimirá en los registros del dispositivo y en la consola de depuración en los modos de liberación y depuración respectivamente. Por ejemplo,
NSlog(@"");
Estructuras de Control
La mayoría de las estructuras de control son las mismas que en C y C ++, excepto por algunas adiciones como en la declaración.
Propiedades
Para que una clase externa acceda a la clase, se utilizan propiedades variables. Por ejemplo,
@property(nonatomic , strong) NSString *myString;
Accediendo a Propiedades
Puede utilizar el operador de puntos para acceder a las propiedades. Para acceder a la propiedad anterior, haremos lo siguiente.
self.myString = @"Test";
También puede utilizar el método de configuración de la siguiente manera:
[self setMyString:@"Test"];
Categorías
Las categorías se utilizan para agregar métodos a las clases existentes. De esta manera, podemos agregar métodos a las clases para las que no tenemos ni siquiera archivos de implementación donde se define la clase real. Una categoría de muestra para nuestra clase es la siguiente:
@interface MyClass(customAdditions)
- (void)sampleCategoryMethod;
@end
@implementation MyClass(categoryAdditions)
-(void)sampleCategoryMethod {
NSLog(@"Just a test category");
}
Matrices
NSMutableArray y NSArray son las clases de matriz utilizadas en el objetivo C. Como sugiere el nombre, la primera es mutable y la segunda es inmutable. A continuación se muestra un ejemplo.
NSMutableArray *aMutableArray = [[NSMutableArray alloc]init];
[anArray addObject:@"firstobject"];
NSArray *aImmutableArray = [[NSArray alloc]
initWithObjects:@"firstObject",nil];
Diccionario
NSMutableDictionary y NSDictionary son las clases de diccionario utilizadas en el objetivo C. Como sugiere el nombre, el primero es mutable y el segundo es inmutable. A continuación se muestra un ejemplo.
NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init];
[aMutableDictionary setObject:@"firstobject" forKey:@"aKey"];
NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:
@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];