iOS - Obiettivo C

Il linguaggio utilizzato nello sviluppo di iOS è l'obiettivo C. È un linguaggio orientato agli oggetti e, quindi, sarebbe facile per coloro che hanno un background nei linguaggi di programmazione orientati agli oggetti.

Interfaccia e implementazione

In Objective C, il file in cui viene eseguita la dichiarazione di classe è chiamato interface file e il file in cui è definita la classe è chiamato implementation file.

Un semplice file di interfaccia MyClass.h sarebbe simile al seguente:

@interface MyClass:NSObject { 
   // class variable declared here
}

// class properties declared here
// class methods and instance methods declared here
@end

Il file di implementazione MyClass.m sarebbe il seguente -

@implementation MyClass
   // class methods defined here
@end

Creazione di oggetti

La creazione dell'oggetto viene eseguita come segue:

MyClass  *objectName = [[MyClass alloc]init] ;

Metodi

Il metodo è dichiarato nell'Obiettivo C come segue:

-(returnType)methodName:(typeName) variable1 :(typeName)variable2;

Di seguito è mostrato un esempio.

-(void)calculateAreaForRectangleWithLength:(CGfloat)length 
andBreadth:(CGfloat)breadth;

Ti starai chiedendo cosa sia andBreadthstringa è per; in realtà è una stringa opzionale, che ci aiuta a leggere e comprendere facilmente il metodo, soprattutto al momento della chiamata. Per chiamare questo metodo nella stessa classe, usiamo la seguente dichiarazione:

[self calculateAreaForRectangleWithLength:30 andBreadth:20];

Come detto sopra, l'uso di andBreadth ci aiuta a capire che la larghezza è 20. Self è usato per specificare che è un metodo di classe.

Metodi di classe

È possibile accedere direttamente ai metodi di classe senza creare oggetti per la classe. Non hanno variabili e oggetti associati. Di seguito è mostrato un esempio.

+(void)simpleClassMethod;

È possibile accedervi utilizzando il nome della classe (supponiamo che il nome della classe sia MyClass) come segue:

[MyClass simpleClassMethod];

Metodi di istanza

È possibile accedere ai metodi di istanza solo dopo aver creato un oggetto per la classe. La memoria è allocata alle variabili di istanza. Di seguito viene mostrato un metodo di istanza di esempio.

-(void)simpleInstanceMethod;

È possibile accedervi dopo aver creato un oggetto per la classe come segue:

MyClass  *objectName = [[MyClass alloc]init] ;
[objectName simpleInstanceMethod];

Tipi di dati importanti nell'obiettivo C

Sr.No. Tipo di dati
1

NSString

Viene utilizzato per rappresentare una stringa.

2

CGfloat

Viene utilizzato per rappresentare un valore in virgola mobile (è consentito anche il normale float, ma è meglio usare CGfloat).

3

NSInteger

Viene utilizzato per rappresentare il numero intero.

4

BOOL

Viene utilizzato per rappresentare Boolean (YES o NO sono i tipi BOOL consentiti).

Stampa dei registri

NSLog: utilizzato per stampare un'istruzione. Verrà stampato nei registri del dispositivo e nella console di debug rispettivamente nelle modalità di rilascio e debug. Per esempio,

NSlog(@"");

Strutture di controllo

La maggior parte delle strutture di controllo sono le stesse di C e C ++, ad eccezione di alcune aggiunte come l'istruzione in.

Proprietà

Affinché una classe esterna acceda alla classe, vengono utilizzate le proprietà delle variabili. Per esempio,

@property(nonatomic , strong) NSString *myString;

Accesso alle proprietà

È possibile utilizzare l'operatore punto per accedere alle proprietà. Per accedere alla proprietà di cui sopra, faremo quanto segue.

self.myString = @"Test";

È inoltre possibile utilizzare il metodo set come segue:

[self setMyString:@"Test"];

Categorie

Le categorie vengono utilizzate per aggiungere metodi alle classi esistenti. In questo modo, possiamo aggiungere metodi alle classi per le quali non abbiamo nemmeno i file di implementazione in cui è definita la classe effettiva. Una categoria di esempio per la nostra classe è la seguente:

@interface MyClass(customAdditions)
- (void)sampleCategoryMethod;
@end

@implementation MyClass(categoryAdditions)

-(void)sampleCategoryMethod {
   NSLog(@"Just a test category");
}

Arrays

NSMutableArray e NSArray sono le classi di array utilizzate nell'obiettivo C.Come suggerisce il nome, la prima è mutabile e la seconda è immutabile. Di seguito è mostrato un esempio.

NSMutableArray *aMutableArray = [[NSMutableArray alloc]init];
[anArray addObject:@"firstobject"];
NSArray *aImmutableArray = [[NSArray alloc]
initWithObjects:@"firstObject",nil];

Dizionario

NSMutableDictionary e NSDictionary sono le classi del dizionario utilizzate nell'obiettivo C. Come suggerisce il nome, la prima è mutabile e la seconda è immutabile. Di seguito è mostrato un esempio.

NSMutableDictionary *aMutableDictionary = [[NSMutableArray alloc]init];
[aMutableDictionary setObject:@"firstobject" forKey:@"aKey"];
NSDictionary*aImmutableDictionary= [[NSDictionary alloc]initWithObjects:[NSArray arrayWithObjects:
@"firstObject",nil] forKeys:[ NSArray arrayWithObjects:@"aKey"]];