12 berichten aan het bekijken - 1 tot 12 (van in totaal 12)
  • Q:
    Bijdrager
    dVuchi

    Vraagje: java –> obj – C/ cocoa

    Beste,

    iPhone applicaties maken is leuk en de mogelijkheden zijn grenzenoos maar in het begin is het een beetje zoeken!

    Als beginneling van xCode /obj -C ben ik op zoek naar een manier om de volgende java code te doen compileren in Xcode.

    public String jongenMeisje(String naam){
    String resultaat = ” “;

    if(naam = “naam1” || “naam2” || ….){
    resultaat += “naam1” is een jongen;
    }

    else if( a = “naamA || “naamB” || ….
    resultaat += “naamA” is een meisje;
    }

    else{
    resultaat += “Naam bestaat niet”;
    }

    return resultaat;
    }

    en dan koppel ik in het .xib bestand “a” aan een text-field en resultaat aan een text-field. Als action ga ik deze methode (jongenMeisje) nemen dan.

    In de code zet ik verschillende namen. Jongesnamen bij case1 (if) en meisjesnamen bij case2 (else if) en in case3 komt een foutmelding. Het programmatje werkt als volgt: men typt een naam in naam (String naam). men klikt op jongenMeisje (in het .xib bestand is dit een UIbutton). Met als gevolg dat in het resultaat de naam + is een jongen/meisje komt.

    Duidelijk?

    En ja ik ben amateur:)

    Alvast bedankt:)

    Bijdrager
    TheBigZ

    Dennis, als ik je een tip mag geven. Begin met de voorbeelden uit deze tutorial. Daar wordt je stap voor stap door de beginselen van Objective-C en Cocoa heengeleid.

    Bijdrager
    Verwijder

    Become an Xcoder is inmiddels een beetje verouderd maar je kan inderdaad het beste eerst wat tutorials of een boek doorwerken want in het begin zoek je je gek.

    Werkt de Java-code wel? Met mijn minimale Java-kennis denk ik dat je het volgende bedoelt:

    public String jongenMeisje(String naam){
    String resultaat;
    if(naam = “naam1” || naam = “naam2” || ….){
    resultaat = naam + ” is een jongen”;
    }
    else if(naam = “naamA” || naam = “naamB” || ….){
    resultaat = naam + ” is een meisje”;
    }
    else{
    resultaat = naam + ” bestaat niet”;
    }
    return resultaat;
    }

    In Objective-C/Cocoa wordt dit (niet uitgeprobeerd, kan een syntax-foutje in zitten):

    – (NSString *)jongenMeisje:(NSString *)naam
    {
    NSString *resultaat;
    if([naam isEqualToString:@”naam1″] || [naam [email protected]”naam2″] || ….){
    resultaat = [NSString stringWithFormat:@”%@ is een jongen”, naam];
    }
    else if([naam isEqualToString:@”naamA”] || [naam isEqualToString:@”naamB”] || ….){
    resultaat = [NSString stringWithFormat:@”%@ is een meisje”, naam];
    }
    else{
    resultaat = [NSString stringWithFormat:@”%@ bestaat niet”, naam];
    }
    return resultaat;
    }

    ja, ik vind het ook omslachtiger.

    Bijdrager
    dVuchi

    BigZ,

    Ik houd het nochtans maar tutorials maar ik wil stilaan eigen programmatjes maken:) die .pdf is wel handig, bedankt!:)

    Willemien,
    ik ga dat eens proberen. bedankt!

    Voor de rest, tutorials afgaan tot ik deze situatie tegenkom zeker?:)

    Bedankt!

    Bijdrager
    storbuzs

    Ik zou beginnen met je “haakjes” op de juiste plaats te zetten…
    Namen van variabelen worden niet tussen haakjes gezet. Dit doe je met strings die in de variabelen dienen te komen.

    Jij typt: resultaat += “naam1” is een jongen;

    waarbij naam1 tussen haakjes staat (je variabele)
    en is een jongen niet (de string die je wil toevoegen aan resultaat.)

    Ook je syntaxis zit er grotendeels naast, om in Obj-C en Cocoa strings te definieren zou je heel je code moeten aanpassen.

    Je moet je string definieren met NSString
    bvb NSString *resultaat;

    en om waardes in je string te stockeren doe je dit zo:

    resultaat = @”je tekst die je erin wil”;
    in jou geval: resultaat [email protected]”%@ is een jongen”, naam1;

    Succes!

    Bijdrager
    e.abrahamse

    De overgang van Java naar Objective C is een ware uitdaging. Van Wiley is er een boek die daarop ingaat onder de naam Java and Mac OSX. Van Apress is er een boek onder de naam “Learn Objective C for Java developers”. Ik wens je veel inspiratie en wijsheid.

    Bijdrager
    Verwijder

    Voor de rest, tutorials afgaan tot ik deze situatie tegenkom zeker?

    Of de documentatie van Apple (meerder malen) doorspitten. Lees in ieder geval de “Required Reading” en verder de “Getting Started”. De documentatie van Apple gaat er wel van uit dat je al programmeerervaring hebt.

    Bijdrager
    IBram15

    Ik ben vandaag begonnen met Objective C, via deze youtube filmpjes:
    Objective C Programming tutorial (65 filmpjes)
    iPhone Development Tutorial (37 filmpjes)

    Deze zijn van dezelfde gebruiker, dus gaan goed samen.
    Daarnaast heb ik ook dit boek op m’n iPad staan.

    Inactief
    Anoniem

    Ik zou niet proberen om de code te ‘vertalen’, maar met niets te beginnen. Zo breng je geen verkeerde gewoontes mee van Java.

    Bijdrager
    bitsflew

    @dVuchi

    De vergelijkings operator in Java (== niet =) controleert bij ‘Strings’ of het om hetzelfde object gaat.
    De waarde van ‘Strings’ vergelijk je met ‘equals()’,’equalsIgnoreCase()’,’compareTo()’ of ‘compareToIgnoreCase()’

    Aangepaste code:

    <br />
    public String jongenMeisje(String naam){<br />
    String resultaat;<br />
    if(naam.equals("naam1") || naam.equals("naam2") || ....){<br />
    resultaat = naam + " is een jongen";<br />
    }<br />
    else if(naam.equals("naamA") || naam.equals("naamB") || ....){<br />
    resultaat = naam + " is een meisje";<br />
    }<br />
    else{<br />
    resultaat = naam + " bestaat niet";<br />
    }<br />
    return resultaat;<br />
    }<br />
     

    In Objective-C ziet dat er als volgt uit

    <br />
    -(NSString*) jongenMeisje:(NSString*) naam<br />
    {<br />
    NSString* resultaat;<br />
    if([naam isEqualToString:@"naam1"] || [naam [email protected]"naam2"] || ....){<br />
    resultaat = [naam stringByAppendingString: @" is een jongen"];<br />
    }<br />
    else if([naam isEqualToString:@"naamA"] || [naam isEqualToString:@"naamB"] || ....){<br />
    resultaat = [naam stringByAppendingString: @" is een meisje"];<br />
    }<br />
    else{<br />
    resultaat = [naam stringByAppendingString: @" bestaat niet"];<br />
    }<br />
    return resultaat;<br />
    }<br />
     
    Bijdrager
    2eSteve

    @bitsflew
    Moet je niet vergeten om de NSString in de header file te zetten, hè! Anders wordt hij niet echt bepaald public, of je moet de volgende methode invoegen:

    – (NSString *)jongenMeisje
    {
    return jongenMeisje;
    }

    en die in de headerfile zetten.

    Vraagje, kan je niet gewoon dit doen:
    resultaat = @”%@ is een jongen”, naam”;

    Bijdrager
    2eSteve

    @dVuchi: er staat veel Nederlands in je code. Dit is niet erg, maar als ik jouw was zou ik het gewoon op Engels houden, zo heb je niet 2 talen door elkaar in je code.:slant:

12 berichten aan het bekijken - 1 tot 12 (van in totaal 12)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.