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

    Integer variable Objective C

    Met onderstaande code genereer ik twee integers.

    int position1 = (arc4random() % 6) +1;

    int position2;
    do {
    position2 = (arc4random() % 6) +1;
    }
    while (position2 == position1);

    Vervolgens probeer ik deze integers te gebruiken, er ontstaat echter een probleem.

    firstButton.frame = btframe%d, position1;
    secondButton.frame = btFrame%d, position2;

    Bij de vetgedrukte code bevindt zich de fout.

    “Use of undeclared identifier ‘d’.”

    Ik weet dat de notatie niet goed is maar volgens mij zit ik er niet ver naast. Het antwoord is vast wel te vinden op bv. stackoverflow maar ik zou niet goed weten waar ik op moet googelen… Weet iemand de juiste notatie?

    Bij voorbaat dank!

    Mvg,
    Ruben

    Inactief
    Anoniem

    Een frame voor een view is een CGRect en heeft 4 variabelen: x oorsprong, y oorsprong, x lengte, y hoogte

    Als je dus de x positie van de button wilt veranderen, kun je zoiets doen:

     
    CGRect r = firstButton.frame;
    r.origin.x = position1;
    firstButton.frame = r;
     

    Het gebruik van %d, etc doe je in combinatie met een NSString, en is hier niet op zijn plaats.

    Je zou kunnen googelen op “change UIView position” (voor iOS), of “change NSView position (voor OS X)

    Bijdrager
    iRuben

    @koen

    Dank voor je reactie, dit is echter niet wat ik bedoel (wat waarschijnlijk komt door mijn onduidelijke vraagstelling).

    Eerst was dit mijn code (dit werkt perfect):

     
    firstButton.frame = btframe1;
    secondButton.frame = btFrame2;
     

    Wat ik echter wil doen is het getal veranderen in een variabele, dit heb ik op de volgende manier proberen te doen:

     
    firstButton.frame = btframe%d, position1;
    secondButton.frame = btFrame%d, position2;
     

    Dit is fout want, zoals je aangeeft mag je %d alleen in combinatie met een NSString gebruiken. Als ik echter dit probeer krijg ik ook een error:

     
    firstButton.frame = [NSString stringWithFormat:@"btFrame%d", position1];
     

    Hopelijk begrijp je nu iets beter wat ik probeer te bereiken.

    Bijdrager
    TheBigZ

    Je zou een array kunnen maken van zes btframes. Het random getal gebruik je dan als index in dat array om één van de zes btframes te selecteren.

    Inactief
    Anoniem

    Dan had ik het inderdaad niet goed begrepen. Om het antwoord van TheBigZ aan te vullen, je kunt een CGRect in een NSArray stoppen als een NSValue:

     
    + (NSValue *)valueWithCGRect:(CGRect)rect
     
5 berichten aan het bekijken - 1 tot 5 (van in totaal 5)

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