X-Code error – kto vie pomoct?

Domov Diskusné Fóra Pomoc: software X-Code error – kto vie pomoct?

Zobrazuje sa 20 príspevkov - 1 až 20 (z celkového počtu 28 )
  • Autor
    Príspevky
  • #95318
    Mayo323
    Účastník

    Caute. Skusal som vytvorit kalkulacku ako zadanie Stanfordskeho lektora na domacu ulohu.
    Nebudem klamat ale vacsinu som opisal z videa a na konci prace mi vyhodlo tieto dve chyby kvoli ktorym aplikaciu nespusti:

    Undefined symbols for architecture armv7s:
    „_OBJC_CLASS_$_CalculatorBrain“, referenced from:
    objc-class-ref in CalculatorViewController.o
    ld: symbol(s) not found for architecture armv7s
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    Ak by niekomu napadlo co by som mohol opravit bol by som vdacny.

    #360633
    iMartin
    Účastník

    Súbor v ktorom je trieda CalculatorBrain nie je označený na kompliláciu. V Document Inspectore treba daný .m súbor zaškrtnúť do tvojej aplikácie.

    http://stackoverflow.com/questions/6960543/undefined-symbols-objc-class-error

    Odporúčam riešiť vývojárske problémy na StackOverflow, tu by si iba zahltil fórum. Tam sú už všetky problémy vyriešené, takže predtým, než tam vytvoríš otázku, vyhľadaj si existujúce.

    #360635
    Mayo323
    Účastník

    Skusim to pozriet.
    Dik

    #360638
    magero
    Účastník

    Tu je priklad kalkulacky, myslim ze sa aj zdrojak da stiahnut

    Writing Calculator for iPhone iOS in Xcode

    #360640
    Mayo323
    Účastník

    Toto je dost zdlhave zapisat kazde jedno tlacitko. Ja som mal postup kde zapisem jednu funkciu pre cisla a jednu pre akcne tlacitka (/,*,+,-,=)
    Ale zapisane mam vsetko dobre lebo nikde v texte nemam ziadnu chybu zobrazenu.
    Az ked som dal spustit aplikaciu, tak mi nabehli tieto dve chyby. Skusim este co mi radil iMartin a uvidime.

    #360664
    Mayo323
    Účastník

    Tak buď neviem čo som to mal zaškrtnúť, alebo to nefunguje ….
    Už som skúsil asi všetko a stále rovnaký problém …
    Asi okašlem celú kalkulačku

    #360665
    iMartin
    Účastník

    Tu je obrázok.

    https://dl.dropboxusercontent.com/u/3694129/Xcode%20Target%20Membership.png

    Budeš tam mať samozrejme meno tvojej aplikácie. Musí to byť zapnuté pre všetky zdrojové .m súbory, ktoré používaš. U teba zrejme „CalculatorBrain.m“.

    Toto nie je problém kalkulačky, toto ti môže vyhodiť pri hociakom projekte. Čo by, aj omnoho horšie.

    #360675
    Mayo323
    Účastník

    To som skusal zaskrkavat. A islo to len pri .m suboroch .h subory to tam maju tiez ale zaskrknut sa to pri nich neda.
    Problem to ale nevyriesilo.

    #360683
    iMartin
    Účastník

    Zazipuj celý projekt a daj ho sem napríklad cez Dropbox.

    #360685
    magero
    Účastník

    Nechyba ti nejaky framework v aplikacii?

    #360689
    iMartin
    Účastník

    @magero: Ak by tá chyba spomínala systémovu triedu, tak áno. On ale píše, že je stále rovnaký problém a ten je s triedou „CalculatorBrain“. Ibaže by si nevšimol, že chyba je už iná.


    @Mayo323
    : Je chyba stále taká istá, alebo iná?

    #360690
    Mayo323
    Účastník

    Ak zmenim nazov triedy tak sa aj v tej chybe premenuje napr z CalculatorBrain na Calculator.
    Skusim to zazipovat ked budem doma. Som fakt zvedavy co s tym treba spravit.

    #360714
    Mayo323
    Účastník

    ehm .. tak neviem ako je to možné ale znova som skúšal všetko prekontrolovať a odrazu už mi to ide.
    Problém je ale v tom, že teraz mi aplikáciu spustí, ale nefunguje mi :-/
    Všetko mám správne zapísané a keď stlačím hociktoré akčné tlačítko, vymaže sa mi display a idem odznova :D
    Asi ma porazí …

    https://www.dropbox.com/s/qe6f5i5r2o41his/Kalkulacka.zip

    #360724
    iMartin
    Účastník

    Všetko funguje, až na jednu vec: neexistuje brain :) Drobná chybka, v metóde „-brain“ má byť v podmienke „!“ výkričník. Čiže, ak brain neexistuje, vytvor ho. Momentálne tam je kladná podmienka: ak existuje vytvor ho.

    Keď si dáš breakpoint do niektorej metódy „-digitPressed“ alebo „-operationPressed“ a pozrieš hodnoty v debuggeri, tak to uvidíš.

    https://dl.dropboxusercontent.com/u/3694129/Calculator%20Brain%20Debugger.png

    #360733
    Mayo323
    Účastník

    no … po hodine som si konečne navolil to čo si mi poslal v tom odkaze a zistil som že ten „brain“ nemá žiadnu hodnotu, keď si dám na neho quick look.
    Neviem ale kvôli čomu .. mám niekde zle zapísanú tú brain metódu, lebo tam nieje výkričník?

    #360738
    iMartin
    Účastník

    Ako som písal, len chýbajúci výkričník (alebo porovnanie s nil).
    [Odsadenie medzerami tu na fóre nefunguje]

    – (Calculator *) brain
    {
    if (brain) { // Toto je zle
    brain = [[Calculator alloc] init];
    }
    return brain;
    }

    Správne možnosti:
    if ( ! brain) …
    if (brain == nil) …

    #360739
    Mayo323
    Účastník

    hej v tom zadaní z youtube bolo if (!brain)
    ale aj keď to tam dám ten výkričník, tak to robí stále to isté … u teba to potom fungovalo?

    #360741
    iMartin
    Účastník

    Áno, potom to už funguje, normálne to počíta. Aplikáciu musiš buildnúť a sputiť odznova ;) Alebo je problém inde?

    #360743
    Mayo323
    Účastník

    Mne to neráta, ale mi to vždy hodí na display 0 keď stlačím čokolvek iné ako číslo …. aj keď dám reset settings v simulatore

    #360745
    Mayo323
    Účastník
Zobrazuje sa 20 príspevkov - 1 až 20 (z celkového počtu 28 )
  • Musíte byť prihlásený, aby ste mohli odpovedať na túto tému.