Gå till innehåll
Just nu i M3-nätverket

Hjälp önskas i Xcode


Teo O

Rekommendera Poster

Hej jag har precis fått en macbook och börjat programera lite i xcode. Men hur jag än gör får jag alltid en error när jag ska simulera den. Så jag undra om någon kan hjälpa mig och rätt mitt fel?

Bra att veta är att det är två program utvecklade separat som sedan slogs ihop (ett stoppur och en ord generator)

 

Tack på för hand!!

post-60934-017847000 1296065113_thumb.png

post-60934-077146700 1296065129_thumb.png

Länk till kommentar
Dela på andra webbplatser

Är ingen expert men har följande tips:

 

Först två viktiga tips:

1. Tänk även på att Objective-C är case sensitive!

2. Classes skall enligt god sed alltid börja med stor bokstav (dvs Beta_full_app_......ViewController). Medan metoder och variabler börjar med liten bokstav.

 

 

Angående bild 1: Har du #import "XxxxxViewController.h" innan @implementation? Dessutom saknar du Classnamnet efter implementation. Dvs du behöver skriva: @implementation beta_full_app_0_2_3ViewController Ta även bort raderna randomwordviewcontroller.h och IBOutlet UILabel *textView;. längre ner i filen. Du har inte heller definierat getters/setters med de olika lablarna.. dvs @synthesize textview; och @synthesize time;

 

 

Angående bild 2: Varför har du två #import <UIKit/UIKit.h> i headerfilen? Det skall bara vara den innan @Interface. Det bör se ut så här i headerfilen:

#import <UIKit/UIKit.h>

@Interface beta_full_app_0_2_3ViewController: UIViewController {

IBOutlet UILabel *textView;
IBOutlet UILabel *time;
NSTimer *myTicker;
}

-(IBAction)random;
-(IBAction)start;
-(IBAction)stop;
-(IBAction)reset;

Länk till kommentar
Dela på andra webbplatser

Tack så jätte mycket Whopper hela header filen blev problem fri. =)

Dock kom det upp 2 warningar har inte en aning för de kommer, har försökt att googla så gott jag kan men hittar inga lösnngar. :/

 

 

post-60934-024046900 1296074652_thumb.png

post-60934-007847300 1296074643_thumb.png

 

 

file:///Users/i-m-k-o/Desktop/Skärmavbild%202011-01-26%20kl.%2021.38.17.png

Länk till kommentar
Dela på andra webbplatser

Lägg upp hela projektet i en zip-fil så kan jag "rätta" den.

Skulle vara skönt att sträcka på benen lite i Xcode.

Länk till kommentar
Dela på andra webbplatser

Det räcker med en @implementation, så ta bort den andra ...

Sen måste du göra @synthezise på lablerana som jag nämnde tidigare. Gör de direkt efter Implementation. Annars kan du inte göra textView.text = ...

Länk till kommentar
Dela på andra webbplatser

Har skrivit om lite, rensat fel. Men kan mycket väl ha glömt något.

 

Du hade en hel det felplacerade måsvingar och något knasigt namn på en variabel.

Döpte om variabler efter eget tycke, men du ska se skillnaderna jag gjort.

Dock fick jag det inte att köra ordentligt. Kanske något knas med .xib-filen.

 

Rekommenderar att du skapar ett nytt projekt och skriver in denna kod för hand.

Sedan skapa en ny XIB-fil och länka knapparna och textfälten osv.

lite ändrat.zip

Länk till kommentar
Dela på andra webbplatser

Här kommer mitt bidrag :)

beta full app 0.2.3.zip

 

Som sagt, du har inte gjort något arbete i Interfacebuilder verkar det som. Dubbelklicka på xib-filen så startar du IB.

 

 

Edit. Jag hade missat att göra @property i mitt förslag på headerfilen i ovan inlägg. My bad..

Länk till kommentar
Dela på andra webbplatser

Tack så mycket för all hjälp whopper och koplimi!! ska kolla igenom vad jag gjorde för fel så jag inte gör om dom ;).

Har ni några bra tips runt xcode man borde tänka på, hur lärde ni er programmet??

Länk till kommentar
Dela på andra webbplatser

Har ni några bra tips runt xcode man borde tänka på, hur lärde ni er programmet??

 

Jag har följt den kurs som tipsades om i ovan inlägg. Sen har jag även plöjt lite böcker. Bland annat Objective-C for Dummies och håller förnärvarande på med Learning iPhone Programming.

Länk till kommentar
Dela på andra webbplatser

Här kommer dessutom lite handfasta tips:

 

1. Var nogrann i allt du skriver. XCode har autocompletion (dvs det gissar vad du skall skriva och föreslår) som du accepterar med tab-tangenten. Använd denna funktion så mycket du bara kan.. så slipper du eventuella stavfel eller missar stor/liten bokstav.

2. Strukturerar och förklara din kod. Dvs se till att du och andra kan förstå vad du skrivit när man tittar till koden efter en tid.. jag använder mycket remarks, dvs //text som förklarar vad som händer men ignoreras av kompilatorn.

3. Tänk på att ha koll på radslut ; och måsvingarna { } (curly braces på engelska). Jag lägger alltid in båda måsvingarna på en gång och skriver därefter koden mellan dem efteråt.. annars är det lätt att man glömmer den avslutande måsvingen.

4. Skriv klart dina kodsnuttar. Dvs börja inte skriva på en metod utan att göra klart den. T.ex. Om du först deklarerar en IBAction i .h-filen som du gjort: -(IBAction)someMethod; så lägg först in den i .m-filen när du tänker skriva koden mellan måsvingarna. Annars är det lätt att du skaffar dubbletter (som bland annat var ett av de felen du hade i din kod).

5. Namnge variablarna med unika namn så att du förstår vad de betyder så som t.ex. listOfTimes, startTime, stopTime, middleTime. Akta dig även för att använda namn som kan tänkas vara kommandon (dvs håll dig borta från korta ord som time, date, view).

6. Apple vill att man kodar enligt MVC-metodiken (Model-View-Controller). Den är ett väldigt bra sätt att strukturera kod. Så ta dig till det tänket.

7. Effektivisera din kod. Gör du något liknande på två olika ställen? Så kanske det är bättre att du gör en metod som är mer generell som du sen skickar ett meddelande till från andra metoder. När du börjar få lite mer kod så är det lätt att det blir väldigt mycket att hålla reda på annars.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Tack för råden laddade precis ner alla videos från apples hemsida, så nu har jag några timmar video framför mig. :D Ska kolla runt på lite böcker nu också. :)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...