iPhone fejlesztési tapasztalatok

Kezdő iPhone fejlesztőként szeretném összefoglalni a tapasztalataimat. Ezek a bejegyzések remélhetőleg nem csak nekem lesznek hasznosak.

Friss topikok

  • laposvas: hello Tegnap előtti állapot szerint 591Ft-ot vesz le amikor beregisztrálsz! Utánna az Xcode letöl... (2011.12.11. 21:28) Xcode használata

Linkblog

Változók deklarálása

2011.05.06. 16:31 shell8104

A következő néhány cikkben megpróbálom összefoglalni az Objective-C alapokat, mit hogyan kell leírni ezen a nyelven. Elsőként nézzük a változók deklarálását!

Először is vannak a primitív típusok. Ezeknél csak a típust kell megadni és a változó nevét. Ezután már használatba is vehetjük a változónkat. Ilyen típusok lehetnek az int, float és a double. Használatuk a következő:

int age;
age = 30;
age = age + 1;

 

A primitív típusok után vegyük elő a különböző objektum típusú változókat. Itt meg kell említeni, hogy pointerekkel tudunk létre hozni objektumokból változókat a memóriában. A pointer az objektum memóriában elfoglalt helyére mutat. A pointereket egy "*" karakterrel jelöljük és csak a deklarációban kell szerepeltetni. Használat közben már nem kell kiírni. Vegyünk például egy stringet reprezentáló osztályt, ez az NSString. Deklaráljunk egy NSString típusú változót:

NSString *testNSString;
testNSString = [[NSString alloc] init];

 

Nézzünk meg még egy érdekes dolgot, a tulajdonságokat, vagy property-ket. Ha létrehozunk egy saját osztályt, azon belül biztos szükségünk lesz változókra. Ezeket a változókat elérhetjük úgy is, hogy készítünk egy getter és egy setter metódust, ez azonban kényelmetlen lehet, ha sok változónk van és egy idő után unalmas is lehet megírni gépiesen ezeket a metódusokat. Ha ezt nem szeretnénk, választhatjuk a következő módszert: az osztály interfészében deklaráljuk a változót és az Objective-C-re bízzuk a getter és setter metódusok generálását. Nézzünk egy példát:

#import <Cocoa/Cocoa.h>

@interface Message : NSObject {
    NSString *greetingMessage;
}

@property (retain, nonatomic) NSString *greetingMessage;

- (void) greetings;

@end

 

A korábbi példánkat bővítjük ki. Az interfészbe felvettünk egy NSString típusú változót. A @property direktívával mondjuk meg hogy tulajdonságként szeretnénk használni a változót.

 

#import "Message.h"

@implementation Message

@synthesize greetingMessage;

- (void) greetings {
    NSLog(greetingMessage);
}

@end

 

Az implementációs fájlban a @synthesize direktívával azt mondjuk meg, hogy az Objective-C generálja le nekünk a getter és setter metódusokat.

 

Az eddigieket pedig így használhatjuk:

#import <Foundation/Foundation.h>
#import "Message.h"

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    Message * message = [[Message alloc] init];
    message.greetingMessage = @"Property Test Message";
    [message greetings];
    [message release];
    [pool drain];
    return 0;
}

 

A példányosítás után értéket adunk a változónknak. A tulajdonságunknak köszönhetően "."-al hivatkozunk rá, nem "[]"-el, ahogy a példányosításnál is láttuk.

A követező post a controll flow témakörröl fog szólni.

A bejegyzés trackback címe:

https://saborsoft.blog.hu/api/trackback/id/tr12882627

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása