Jabuk
Object-C in properties
Stevie Jabuk

Stevie Jabuk

Pridružen/a: 30.11.2007
Prispevkov: 399
Ni navedeno

Poglej uporabnikov profil
Prispevek: #1   Objavljeno 05.04.2009 15:04:26
Object-C in properties
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Malo me bega tale memory management v Object-C-ju. Kolikor sem razumel, če definiraš property kot:

Koda:
@property (nonatomic, [b]retain[/b]) NSDictionary *myData;


in ga potem alociraš kot:

Koda:

   SBJSON *json = [SBJSON new];
   NSError *error;
   myData = (NSDictionary *)[json objectWithString:data error:&error];


bi ga moralo avtomatsko retain-at. Right? Zgornjo kodo kličem v viewDidLoad. Ko hočem kasneje dostopati do tega property-a javi napako, ker je spomin očitno bil sproščen. Če kličem retain je pa ok. Malo me bege glede tega, da ne bi mel kakih memory leakov.

Pa kako je npr. če alociraš NSString v funkciji in ga vrneš kot rezultat. To je treba potem nekje zunaj klicati release? Right? Recimo nekaj takega:

Koda:

- (NSString *) loadTrenutnoStanje{
   
   
   NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString: @"http://www.domena.com/json.php]                      
                                   cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

   NSURLResponse *response;
   NSError *error;
   
   NSData *data = [NSURLConnection sendSynchronousRequest:theRequest returningResponse: &response error: &error];

   return  [[NSString alloc] initWithData: data  encoding: NSASCIIStringEncoding];
}


Pa še ena epovezana. Kako NSLabel-u v Interface Builderju nastaviš velikost fonta? Če povečem min size se poveča, pomanjša pa ne. Z resizanjem se pa tudi ne pomanjša.

[/code]
iPhone Developer

iPhone Developer

Pridružen/a: 19.09.2008
Prispevkov: 10426
Ni navedeno

Poglej uporabnikov profil
Prispevek: #2   Objavljeno 05.04.2009 15:40:33
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Glede property-jev:
A si sam nastavil setter metodo, ali si jo sintetiziral? Če jo sintetiziraš, avtomatično uporabi atribute, ki si jih nastavil pri deklaraciji, sicer moraš pa sam poskrbeti za to. Pa če želiš, da se uporabijo atributi property-ja, moraš uporabiti setter metodo... v tvoji kodi pa do instančne spremenljivke MyData dostopaš direktno.

Glede drugega vprašanja:
Mislim, da moraš deallocirati objekt kasneje... prepričan pa nisem (nisem še tako daleč).

Glede Interface Builderja:
Si probal stisniti labelo grafično? Sicer pa ne vem... možno da je kakšna omejitev glede minimalne velikosti fonta. Lahko pa probaš v kodi "overridat" nastavitev... malo poglej UILabel property-je, če je to možno..
Jablanator

Jablanator

Pridružen/a: 28.10.2007
Prispevkov: 194
Kraj: Lj
Ni navedeno

Poglej uporabnikov profil
Prispevek: #3   Objavljeno 05.04.2009 16:53:41
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Jaz font za labele vedno stimam v kodi:


Koda:
myLabel.font = [UIFont systemFontOfSize:12.0];

mi je se najlazje, drugace pa mislim da se da v novem IB nastavljat poljuben font in velikost. Wink

Za prvo vprasanje mislim da je fora v autorelease, lahko pa da se motim:
3. poglavje

Za drugo vprasanje pa lahko probas takole:

Koda:
 NString *myString = [self loadTrenutnoStanje];
//naredis nekaj s tem stringom
[myString release];


p.s.: zadevo premaknil v 'dev' forum Smile

lp
Stevie Jabuk

Stevie Jabuk

Pridružen/a: 30.11.2007
Prispevkov: 399
Ni navedeno

Poglej uporabnikov profil
Prispevek: #4   Objavljeno 05.04.2009 20:18:30
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Ja to pa mam, ker se mi neda brati tiste solate od dokumentacije Sad. No če bi, bi ugotovil, da je treba uporabiti dot notacijo, potem se pa avtomatsko kličejo setter in getter metode. Skratka zgledati bi moralo takole:

self.myData = (NSDictionary *)[json objectWithString:data error:&error];

Glede stringa delam tako, samo je to malo nevarno, da ne pozabiš releasat.

Za fonte sem pa potem probal v kodi in dela. Sem pa naredil malenkost drugače, da uporabi obstoječi font, spremeni samo velikost.

stanjeLabel.font = [stanjeLabel.font fontWithSize: 14];

Zmotila me je slika na tem tutorialu, kjer so vidni manjši fonti. Pa sem mislil, da se da narediti.

Zdaj moram pa še samo ugotoviti kako spraviti aplikacijo na telefon, če nimam certifikata.
iPhone Developer

iPhone Developer

Pridružen/a: 19.09.2008
Prispevkov: 10426
Ni navedeno

Poglej uporabnikov profil
Prispevek: #5   Objavljeno 05.04.2009 20:51:24
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Tako:
http://iphonesdkdev.blogspot.com/2008/09/xcode-template-for-pwned-iphone-20x.html
Stevie Jabuk

Stevie Jabuk

Pridružen/a: 30.11.2007
Prispevkov: 399
Ni navedeno

Poglej uporabnikov profil
Prispevek: #6   Objavljeno 05.04.2009 22:11:47
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Dela Cool . Samo dela samo za device 2.1 ali 2.0, 2.2 in 2.2.1 pa ne.
iPhone Developer

iPhone Developer

Pridružen/a: 19.09.2008
Prispevkov: 10426
Ni navedeno

Poglej uporabnikov profil
Prispevek: #7   Objavljeno 05.04.2009 22:56:48
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Meni je skompajlalo in naložilo za 2.2.1 brez problema...
Stevie Jabuk

Stevie Jabuk

Pridružen/a: 30.11.2007
Prispevkov: 399
Ni navedeno

Poglej uporabnikov profil
Prispevek: #8   Objavljeno 06.04.2009 11:32:49
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Meni javlja neko napako v eni sistemski .m datoteki medtem ko preverja dependancy-e. Javljalo je tudi, da je obvezno podpisovanje za projekte 2.2.1. Tudi certifikata mi ne najde iz keychain acess-a. Res pa da sem že kar nekaj šaril po nastavitvah, ko sem preizkušal različne "tutoriale". Uporabljam tudi en eksterni framework za jsom, mogoče ga tudi to kaj matra.
Jablanator

Jablanator

Pridružen/a: 28.10.2007
Prispevkov: 194
Kraj: Lj
Ni navedeno

Poglej uporabnikov profil
Prispevek: #9   Objavljeno 06.04.2009 18:22:11
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Dober tutorial!

koncno vem kako se uporabi celice iz IB Very Happy

Bi prosil ce imate se kaj takih v rokavu, kar na dan z njimi in hitro postat v oddelek s povezavami!

lp
Stevie Jabuk

Stevie Jabuk

Pridružen/a: 30.11.2007
Prispevkov: 399
Ni navedeno

Poglej uporabnikov profil
Prispevek: #10   Objavljeno 06.04.2009 21:20:31
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Kako brati podatke s strežnika v JSON formatu
Kako instalirati JSON -framework

Tole tudi zna biti koristno. Globalne variable in kako uporabiti singleton instance v Object-C. Na strani je poveyava do header file, ki ti to avtomatizira.
Jablanator

Jablanator

Pridružen/a: 28.10.2007
Prispevkov: 194
Kraj: Lj
Ni navedeno

Poglej uporabnikov profil
Prispevek: #11   Objavljeno 06.04.2009 23:00:32
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Hmm, ce prav razumem je JSON nekaka alternativa XML-u? Pa v redu dela?
Jaz imam stalno neke probleme pri NSXMLParserju... pa ne vem kaj naj naredim Laughing

lp
Stevie Jabuk

Stevie Jabuk

Pridružen/a: 30.11.2007
Prispevkov: 399
Ni navedeno

Poglej uporabnikov profil
Prispevek: #12   Objavljeno 07.04.2009 05:37:54
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
JSON se uporablja pri AJAX klicih. Večina programskih jezikov ima funkcije, da avtomatsko zakodira podatke v json obliko. Recimo pri php imaš funkcijo json_encode(), ki ti zakodira asociativni array. Recimo da imaš array("prvi"=>"1", "drugi"=>"2"), funkcija vrne string {"prvi":"1","drugi":"2"} . Tega potem preneseš preko HTTP-ja na iPhone in ga tam dekodiraš in avtomatsko postane NSDictionary z dvema keyema "prvi" in "drugi".

Z XML-om imaš bistveno več dela tako na serverside kot na client strani. Da sploh ne omenjam, da se prenese bistveno manj podatkov.
Jablanator

Jablanator

Pridružen/a: 28.10.2007
Prispevkov: 194
Kraj: Lj
Ni navedeno

Poglej uporabnikov profil
Prispevek: #13   Objavljeno 07.04.2009 14:58:09
Odgovori s citatom Dodaj uporabnika na seznam ignoriranih
Zanimivo!

Koliko pa je takih servisov, ki ponujajo JSON kot alternativo XML? Sam jih nisem zasledil - lahko pa da ne iscem prav Smile

lp

edit: nevermind, google ve vse Wink
Ne moreš dodajati novih tem
Ne moreš odgovarjati na teme
Ne moreš urejati svojih prispevkov
Ne moreš brisati svojih prispevkov
Ne moreš glasovati v anketi
Pokaži sporočila:
Pojdi na:
Jabuk.si Vsa vsebina spletne strani je last Jabuk.si in njegovih članov. © 2004 - 2020 Jabuk.si Kontakt Kontakt   Domov Domov   Na vrh strani Na vrh strani