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 (Participant)

    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 (Participant)

    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 (Participant)

    Skusim to pozriet.
    Dik

    #360638
    magero
    Účastník (Participant)

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

    Writing Calculator for iPhone iOS in Xcode

    #360640
    Mayo323
    Účastník (Participant)

    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 (Participant)

    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 (Participant)

    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 (Participant)

    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 (Participant)

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

    #360685
    magero
    Účastník (Participant)

    Nechyba ti nejaky framework v aplikacii?

    #360689
    iMartin
    Účastník (Participant)

    @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 (Participant)

    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 (Participant)

    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 (Participant)

    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 (Participant)

    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 (Participant)

    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 (Participant)

    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 (Participant)

    Á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 (Participant)

    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 (Participant)
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.