Object-C in properties
|
Stevie Jabuk
Pridružen/a: 30.11.2007 |
Prispevkov: 399 |
|
|
 |
|
Prispevek: #1 Objavljeno 05.04.2009 15:04:26 Object-C in properties |
|
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
Pridružen/a: 19.09.2008 |
Prispevkov: 10564 |
|
|
 |
|
Prispevek: #2 Objavljeno 05.04.2009 15:40:33 |
|
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
Pridružen/a: 28.10.2007 |
Prispevkov: 194 |
Kraj: Lj |
|
 |
|
Prispevek: #3 Objavljeno 05.04.2009 16:53:41 |
|
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.
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
lp
|
 |
Stevie Jabuk
Pridružen/a: 30.11.2007 |
Prispevkov: 399 |
|
|
 |
|
Prispevek: #4 Objavljeno 05.04.2009 20:18:30 |
|
Ja to pa mam, ker se mi neda brati tiste solate od dokumentacije  . 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
Pridružen/a: 19.09.2008 |
Prispevkov: 10564 |
|
|
 |
|
Prispevek: #5 Objavljeno 05.04.2009 20:51:24 |
|
|
 |
Stevie Jabuk
Pridružen/a: 30.11.2007 |
Prispevkov: 399 |
|
|
 |
|
Prispevek: #6 Objavljeno 05.04.2009 22:11:47 |
|
Dela  . Samo dela samo za device 2.1 ali 2.0, 2.2 in 2.2.1 pa ne.
|
 |
iPhone Developer
Pridružen/a: 19.09.2008 |
Prispevkov: 10564 |
|
|
 |
|
Prispevek: #7 Objavljeno 05.04.2009 22:56:48 |
|
Meni je skompajlalo in naložilo za 2.2.1 brez problema...
|
 |
Stevie Jabuk
Pridružen/a: 30.11.2007 |
Prispevkov: 399 |
|
|
 |
|
Prispevek: #8 Objavljeno 06.04.2009 11:32:49 |
|
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
Pridružen/a: 28.10.2007 |
Prispevkov: 194 |
Kraj: Lj |
|
 |
|
Prispevek: #9 Objavljeno 06.04.2009 18:22:11 |
|
Dober tutorial!
koncno vem kako se uporabi celice iz IB
Bi prosil ce imate se kaj takih v rokavu, kar na dan z njimi in hitro postat v oddelek s povezavami!
lp
|
 |
Stevie Jabuk
Pridružen/a: 30.11.2007 |
Prispevkov: 399 |
|
|
 |
|
Prispevek: #10 Objavljeno 06.04.2009 21:20:31 |
|
|
 |
Jablanator
Pridružen/a: 28.10.2007 |
Prispevkov: 194 |
Kraj: Lj |
|
 |
|
Prispevek: #11 Objavljeno 06.04.2009 23:00:32 |
|
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
lp
|
 |
Stevie Jabuk
Pridružen/a: 30.11.2007 |
Prispevkov: 399 |
|
|
 |
|
Prispevek: #12 Objavljeno 07.04.2009 05:37:54 |
|
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
Pridružen/a: 28.10.2007 |
Prispevkov: 194 |
Kraj: Lj |
|
 |
|
Prispevek: #13 Objavljeno 07.04.2009 14:58:09 |
|
Zanimivo!
Koliko pa je takih servisov, ki ponujajo JSON kot alternativo XML? Sam jih nisem zasledil - lahko pa da ne iscem prav
lp
edit: nevermind, google ve vse 
|
 |