Domov › Diskusné Fóra › Pomoc: software › X-Code error – kto vie pomoct?
- Toto téma obsahuje 27 odpovedí, 3 hlasy, a bola naposledny upravená pred 12 years, 3 months od
Mayo323.
-
AutorPríspevky
-
5. augusta 2013 o 7:46 #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.
5. augusta 2013 o 7:55 #360633iMartin
Úč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.
5. augusta 2013 o 8:39 #360635Mayo323
Účastník (Participant)Skusim to pozriet.
Dik5. augusta 2013 o 9:23 #360638
mageroÚčastník (Participant)Tu je priklad kalkulacky, myslim ze sa aj zdrojak da stiahnut
5. augusta 2013 o 9:55 #360640Mayo323
Úč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.5. augusta 2013 o 22:06 #360664Mayo323
Úč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čku5. augusta 2013 o 22:35 #360665iMartin
Úč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.
6. augusta 2013 o 8:09 #360675Mayo323
Úč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.6. augusta 2013 o 10:09 #360683iMartin
Účastník (Participant)Zazipuj celý projekt a daj ho sem napríklad cez Dropbox.
6. augusta 2013 o 10:24 #360685
mageroÚčastník (Participant)Nechyba ti nejaky framework v aplikacii?
6. augusta 2013 o 11:29 #360689iMartin
Účastník (Participant)6. augusta 2013 o 11:41 #360690Mayo323
Úč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.6. augusta 2013 o 17:36 #360714Mayo323
Úč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í …6. augusta 2013 o 20:14 #360724iMartin
Úč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
6. augusta 2013 o 21:11 #360733Mayo323
Úč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?6. augusta 2013 o 21:47 #360738iMartin
Úč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) …6. augusta 2013 o 21:55 #360739Mayo323
Úč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?6. augusta 2013 o 22:30 #360741iMartin
Úč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?
6. augusta 2013 o 22:38 #360743Mayo323
Úč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
6. augusta 2013 o 22:42 #360745Mayo323
Účastník (Participant)je v pohode že ten druhý príkaz má v zátvorke null?
https://www.dropbox.com/s/zjqwpq2d9tggc9j/Sn%C3%ADmka%20obrazovky%202013-08-06%20o%2022.40.33.png
-
AutorPríspevky
- Musíte byť prihlásený, aby ste mohli odpovedať na túto tému.