- Banaz
- Medlem ●
- Sundsvall
Men är det inte Xcode 2.4.1 jag ska ha?
Har du läst Björns inlägg? (se ovan)
Om du kör Panther så är det version 1.5 av Xcode som gäller.
Nyare versioner av Xcode kräver att du kör Tiger.
Om man är helt grön på programmering så kan man även börja med att använda gcc som finns på maskinerna (åtmistånde PPC). Gå in i terminalen och skriv [FONT="Courier New"]gcc [/FONT] eller [FONT="Courier New"]man gcc [/FONT] för mer info. (Nu sitter jag på en PC och skriver detta så jag kan inte verifiera 100%.
Fast jag vet inte om jag tycker att det skulle vara lättare. Har alltid tyckt det varit mer intuitivt att välja "Compile" i en meny än att spara sin fil och sen köra ett separat program vars ev felmeddelanden man sen måste relatera till koden i editorn.
Fast jag vet inte om jag tycker att det skulle vara lättare. Har alltid tyckt det varit mer intuitivt att välja "Compile" i en meny än att spara sin fil och sen köra ett separat program vars ev felmeddelanden man sen måste relatera till koden i editorn.
Jättebra tills dagen du får ett kryptiskt felmeddelande från GCC och inte har en aning om hur saker och ting fungerar under huven.... Poängen är att man ska utnyttja allt som gör sitt workflow snabbare och smartare, men det är fortfarande viktigt som utvecklare att vet hur processen går till i detalj - för förr eller senare KOMMER gcc bråka med dig.
/K
Jättebra tills dagen du får ett kryptiskt felmeddelande från GCC och inte har en aning om hur saker och ting fungerar under huven.... Poängen är att man ska utnyttja allt som gör sitt workflow snabbare och smartare, men det är fortfarande viktigt som utvecklare att vet hur processen går till i detalj - för förr eller senare KOMMER gcc bråka med dig.
Det känns rentav lite trevligt att höra att det finns fler som delar min syn på Xcode. Jag håller med dig, det är ingen nybörjarmiljö precis, och det finns definitivt tillfällen då det stjälper mer än det hjälper. Det är ju ett skal ovanpå GCC, det är inte integrerat med GCC utan ligger bara ovanpå och försöker langa vidare allt så gott det går, och det händer att det blir konstigt. Dessutom har jag också erfarenheten att GCC inte precis är världsmästare på bra felmeddelanden.
... och notera att C/C++ inte utesluter Obj-C eller vice versa som man kanske kan tolka DrRotmos. Du kan blanda fritt.
Blanda fritt är inte helt sant, det går till stor del att blanda, men det finns restriktioner. Exempelvis kan du inte låta en C++-klass ärva en Objective-C-klass.
Läs mer om det här: http://developer.apple.com/releasenotes/Cocoa/Objective-C++.html
Ursprungligen skriven av DrRotmos:
Blanda fritt är inte helt sant.
Saxat från http://developer.apple.com/releasenotes/Cocoa/Objective-C++.html, första stycket:
"Objective-C++ allows you to freely mix C++ and Objective C code in the same source source file."
Exempelvis kan du inte låta en C++-klass ärva en Objective-C-klass.
Att subklassa mellan olika språk är knappast är det första man kommer att tänka på då man börjar programmera
Ja, jag anser att man bör börja sin programmeringskarriär med en bra texteditor och kommandoraden. I början brukar det handla om en eller ett par källkodsfiler, dessa kan man utan problem kompilera manuellt, med vinsten att man förstår hur allting hänger ihop.
/Kalle
Om du ska lära dig att skriva program till OS X med Cocoa och Objective-C måste du först lära dig C, iaf de viktigaste grunderna. Detta kan du med fördel göra genom gcc på command-line.
Den här artikeln är bra om du inte känner för att köpa en 500 sidor lång bok med tråkig C:
http://cocoadevcentral.com/articles/000081.php
Sedan ska du läsa ObjC.pdf. Den är ganska lång, ca 150 sidor, men den kommer att bespara dig mycket bry.
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf
Sedan ska du skaffa dig en Cocoa-bok finns nog inget bättre sätt att lära sig snabbt. Jag rekommenderar Aaron Hillegass bok:
http://www.adlibris.se/product.aspx?isbn=0321213149&s=1
Nej, alla felmeddelanden är inte helt solklara. Missade } i slutet på sista metoden i en klass. Felmeddelandet jag fick var då
error: parse error before 'AT_NAME' token
error: 'pool' undeclared (first use in this function)
AT_NAME är naturligtvis inget variabelnamn jag använder i min kod (eftersom det är ett Dåligt Variabelnamn™).
Jag håller också med om att GCCs felmeddelanden är hemska ibland. Men (rätta mig om jag har fel) det blir väl inte bättre av att man kör kompilatorn utan XCode?
Läs mina och Ingemars inlägg ovan en gång till. Om du fortfarande inte förstår poängen kan vi nog bara konstatera att vi har olika åsikter i frågan.
Jag håller också med om att GCCs felmeddelanden är hemska ibland. Men (rätta mig om jag har fel) det blir väl inte bättre av att man kör kompilatorn utan XCode?
Nej, det får vara en bra smart IDE om den skall kunna rätta till dem. Men, när man får felmeddelandena "rena" ut från GCC så är problemet mindre, felkällorna färre. Man har sin lilla kommandorad, som är mycket kortare och enklare än den Xcode använder, och det är ingen risk att saker filtreras bort utan ens vetskap. Det finns poänger med det.
Säg att man ska kompilera ett litet OpenGL-demo, en enda fil. Ska man öppna Xcode och skapa ett projekt bara för det? Skapa projekt, välja typ av projekt (från en LÅNG lista), välja namn och plats för det, lägga till filen, ta bort dummyfilerna... Tänk dig att du har en mapp med 50 enkla exempel, och vill kompilera och köra alla. :eek: Då känner man att Xcode är en lite väl komplicerad lösning för enkla problem.
Läs mina och Ingemars inlägg ovan en gång till. Om du fortfarande inte förstår poängen kan vi nog bara konstatera att vi har olika åsikter i frågan.
Jag har läst dem flera gånger. Flummiga argument om att "veta hur det funkar under huven" tycker jag inte räcker för att avråda någon att börja med den utvecklingsmiljö som är standard i OS X. Kanske kan du förklara lite bättre istället för att uppmana mig att läsa noggrannare.
Ingemar, givetvis kan du hitta den typen av exempel där det går fortare utan XCode. Å andra sidan tar förfarandet du beskriver på sin höjd en minut. Sen är det väl inte omöjligt att man vill pilla runt med exemplena, skriva egen kod (och då få autocomplete) och debugga exemplena för att få ut nåt av det. Men det är ändå lite vid sidan av tycker jag. Vad som går fortast i enskilda fall är väl inte så relevant när man ska hjälpa någon att komma igång med programmering.
Jag ska villigt erkänna att jag kan bli lite allergisk mot folk som jämt ska förespråka terminalen till allting (säger inte att det gäller er). Hade nåt exempel där någon förespråkade "top" och "ps" framför Aktivitetskontroll. Det är nog väldigt få som väljer OS X för att kunna skriva kommandon för hand på en kommandorad...
Jag är långt ifrån någon Terminalvän, snarast saknar jag tiden då allting gick att göra utan den. Men just exemplet jag hade är ett problem jag stötte på när jag pluggade OpenGL. Det fanns helt enkelt inget vettigt sätt att testa igenom alla exempel utan att sitta och harva projekttargets för varenda en, tills man hittar det enda exempel man var ute efter att jobba vidare med. En minut gånger hundra exempel är rätt jobbigt. Och det är inte första eller sista gången.
För nybörjaren (som ju det här gäller) är jag kluven. Jag gillar att jobba i IDEer, men Xcode är inte en nybörjarvänlig IDE. Den är ganska rejält svulstig, strular ibland, och då måste man vara rätt bra på att veta vad man ska grotta i, när man kanske hellre skulle vilja koncentrera sig på koden. Terminalen känns inte som den perfekta lösningen, men jag tycker inte Xcode är till någon större hjälp när projekten är små.
GCCs konstiga felmeddelanden var ett sidospår, ursäkta.
Här kommer mina ( pre switcher ,hoppas på en Mac Pro före jul ) ideér angående detta, jag tycker att man borde lära sig Xcode om man inte älskar att knappa kommandon "för hand", nu är det så att jag inte ens äger någon mac än mindre använt Xcode men jag har programmerat 32bitars assembler & C i windowsmiljö i 7-8 år och där är det absolut bäst att använda Visual Studio. Man kanske inte kan jämföra Xcode med Visual Studio men jag skulle aldrig sitta och kompilera kod i ett terminalfönster. :rolleyes: