Moi!
Nyt olis kysymys tuosta releasistä. Eli rc saadaan tuolla alas ja:
1) Jos rc on yksi ja annetaan release komento niin onko homma silloin ok?
2) Voiko yhden .h päätteisen tiedoston sisällä vapauttaa kaikki muuttujat yhdellä käskyllä?
3) Tarvitseeko vapauttaa IBOutlet-muuttujia?
4) Tehdäänkö vapauttaminen -(void) dealloc-metodissa vai voiko tehdä muuttujan muuttuessa tarpeettoomaksi?
Eikä varmaan 4.2 ole vielä tullut tuota Garbage collectionia iOS:lle?
Vastauksista voi olla apua muillekin vasta-alkajille.
Kiitos
yst t
Miska
Release
Xcode, Mac OS X Server sekä muuta hauskaa ja hyödyllistä
5 viestiä
• Sivu 1/1
-
- Viestit: 317
- Liittynyt: 23.2.2004 klo 22.04
- Paikkakunta: Tarvasjoki
Re: Release
Viesti Kirjoittaja Virgo »
Nyrkkisääntönä voisi pitää, että aina jokaista init/copy/retain metodia kohden yksi release/autorelease.QMV kirjoitti:Moi!
Nyt olis kysymys tuosta releasistä. Eli rc saadaan tuolla alas ja:
1) Jos rc on yksi ja annetaan release komento niin onko homma silloin ok?
2) Voiko yhden .h päätteisen tiedoston sisällä vapauttaa kaikki muuttujat yhdellä käskyllä?
3) Tarvitseeko vapauttaa IBOutlet-muuttujia?
4) Tehdäänkö vapauttaminen -(void) dealloc-metodissa vai voiko tehdä muuttujan muuttuessa tarpeettoomaksi?
Eikä varmaan 4.2 ole vielä tullut tuota Garbage collectionia iOS:lle?
Vastauksista voi olla apua muillekin vasta-alkajille.
Kiitos
yst t
Miska
Objektin instanssin voit vapauttaa heti, kun et sitä enää tarvitse, tai dealloc-metodissa, joka on viimeinen paikka, missä varattu muisti pitää vapauttaa. Header-tiedostossa (.h pääte) esitellään muuttujat ja metodit, siellä ei vapauteta mitään. IBOutlet-muuttujat tulee vapauttaa, jos olet kutsunut niille retainia (esim. tehnyt propertyn).
Roskien keruuta ei iOS:ssä ole, eikä varmaan tule olemaankaan. Käytössä olevaa muistia on niin vähän, että kannattaa opetella tehokas muistinhallinta (vapauttamaan resurssit heti, kun niitä ei enää tarvitse).
iMac 27"/i5 3.1GHz/12GB/6970M, MacBook Air 13"/i5 1.8GHz/256GB/8GB, iPhone 5 64GB, iPad 2 3G 32GB
Sanapeli iPhoneen: http://uusitupa.org/projects/lost-words
Ajopäiväkirja iPhoneen: http://uusitupa.org/projects/drive-journal
Sanapeli iPhoneen: http://uusitupa.org/projects/lost-words
Ajopäiväkirja iPhoneen: http://uusitupa.org/projects/drive-journal
-
- Viestit: 37
- Liittynyt: 11.8.2010 klo 23.32
Re: Release
Viesti Kirjoittaja QMV »
Moi!
Kiitoksia. Uskoisin selviävän noilla. Tuota retainiä en vielä oikein ymmärrä, eli miksi käskyllä pitää nostaa rc-lukua tarkoituksellisesti ylöspäin? Ja tuleeko tuossa lsitassa init/copy/retain olla vielä alloc?
yst t
Miska
Kiitoksia. Uskoisin selviävän noilla. Tuota retainiä en vielä oikein ymmärrä, eli miksi käskyllä pitää nostaa rc-lukua tarkoituksellisesti ylöspäin? Ja tuleeko tuossa lsitassa init/copy/retain olla vielä alloc?
yst t
Miska
-
- Viestit: 317
- Liittynyt: 23.2.2004 klo 22.04
- Paikkakunta: Tarvasjoki
Re: Release
Viesti Kirjoittaja Virgo »
Retainilla voi esimerkiksi estää objektin ennen aikaisen vapauttamisen. Esimerkiksi saat joltain metodilta paluuarvona objektin, jolle on annettu autorelease kutsutun metodin sisällä. Normaalisti tämä objekti poistuu muistista kun autorelease pool vapautetaan seuraavan kerran. Jos tarvitset objektia myöhemmin, voit antaa sille retain komennon (lisätä countia yhdellä), jolloin voit estää objektin poistumisen muistista. Tämän jälkeen vapautat itse sen release komennolla, kun et enää tarvitse. Jos käytät obj-c 2.0 propertyja, niin olet huomannut varmaan ne @property (retain) määritelmät. Tässäkin tapauksessa objektille kutsutaan retainia, kun sijoitat sen propertyn arvoksi (ja tämän vuoksi property tulee myös vapauttaa dealloc metodissa).QMV kirjoitti:Moi!
Kiitoksia. Uskoisin selviävän noilla. Tuota retainiä en vielä oikein ymmärrä, eli miksi käskyllä pitää nostaa rc-lukua tarkoituksellisesti ylöspäin? Ja tuleeko tuossa lsitassa init/copy/retain olla vielä alloc?
yst t
Miska
Tulipa taas epäselvää (ja huonoa suomenkieltä), toivottavasti ymmärsit jotain

iMac 27"/i5 3.1GHz/12GB/6970M, MacBook Air 13"/i5 1.8GHz/256GB/8GB, iPhone 5 64GB, iPad 2 3G 32GB
Sanapeli iPhoneen: http://uusitupa.org/projects/lost-words
Ajopäiväkirja iPhoneen: http://uusitupa.org/projects/drive-journal
Sanapeli iPhoneen: http://uusitupa.org/projects/lost-words
Ajopäiväkirja iPhoneen: http://uusitupa.org/projects/drive-journal
-
- Viestit: 37
- Liittynyt: 11.8.2010 klo 23.32
Re: Release
Viesti Kirjoittaja QMV »
Moi!
Ok, kyllä Suomen kielesi on hyvää, vika on kyllä täällä päässä hahmottaa tiettyjä asioita. Huomasin tuossa kun olen tätä ohjelmaa tehnyt, että käytän plistiä aika paljon ja käytän sitä ikäänkuin kutsumisen sijasta. Eli tallennan plistille ja otan muuttujan arvon sieltä käyttöön. Eli vaikka olen lukenut ja tehnyt harjoituksia, niin en ole silti oikein omaksunut tuota metodista/objektista hakemista. Mutta näyttää se näinkin onnistuvan. Ja siinä on tietenkin se hyvä puoli,että voin ainakin käyttää relese-komentoa paljon metodeissa(jos nyt olen sen oikein käsittänyt). Lisää treeniä niin eiköhän se tästä.
yst t
Miska
Ok, kyllä Suomen kielesi on hyvää, vika on kyllä täällä päässä hahmottaa tiettyjä asioita. Huomasin tuossa kun olen tätä ohjelmaa tehnyt, että käytän plistiä aika paljon ja käytän sitä ikäänkuin kutsumisen sijasta. Eli tallennan plistille ja otan muuttujan arvon sieltä käyttöön. Eli vaikka olen lukenut ja tehnyt harjoituksia, niin en ole silti oikein omaksunut tuota metodista/objektista hakemista. Mutta näyttää se näinkin onnistuvan. Ja siinä on tietenkin se hyvä puoli,että voin ainakin käyttää relese-komentoa paljon metodeissa(jos nyt olen sen oikein käsittänyt). Lisää treeniä niin eiköhän se tästä.
yst t
Miska
Viimeksi muokannut QMV, 19.12.2010 klo 13.00. Yhteensä muokattu 1 kertaa.
5 viestiä
• Sivu 1/1
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit