Resolved iOS, Objective-C Declaring Variable to entire Class.

Discussion in 'iPhone/iPad Programming' started by resetme, Dec 17, 2012.

  1. macrumors newbie

    Joined:
    Oct 28, 2012
    #1
    Hi guyz,

    i'm new here and i have one doubt about creating variables.

    I have a variable that get the screen size of the device declared inside a method, but i need it to be out of the scope to all my methods inside the same class (just for the same class).

    I dont want to pass it by arguments to every method, so i need a private visible variable for this class.

    How can i do that?
    Right now i have:

    I declared it only in the .m file
    Code:
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    @synthesize seleccion,button1,button2,button3;
    
    static CGRect screenBound;
    static CGFloat screenWidth;
    static CGFloat screenHeight;
    
    - (void)viewDidLoad
    {
    
        //Get Screen Size
        screenBound = [[UIScreen mainScreen] bounds];
        screenWidth = screenBound.size.width;
        screenHeight = screenBound.size.height;
    
       //Lot of methods who use the screen size here 
       bla bla bla
    
    }
    
    It's that correct? i never use static in C#, for me static means visible for ALL class and i dont want that, i just need it for this class. also... it's there a problem for not declaring it at my .h file?

    Thanxs!
     
  2. Moderator

    dejo

    Staff Member

    Joined:
    Sep 2, 2004
    Location:
    The Centennial State
    #2
    Yes, that's correct. In Objective-C, static does not mean visible for ALL classes.
     
  3. thread starter macrumors newbie

    Joined:
    Oct 28, 2012
    #3
    ty!


    hey, do u know how to delegate?

    i need to call a function in class B from classA when an animation is over.


    classA:
    Code:
    [UIView animateWithDuration:animateDuration
                              delay:animateDelay
                            options: UIViewAnimationCurveEaseOut
                         animations:^{
                             CGRect frame = obj.frame;
                             frame.origin.x = posX;
                             frame.origin.y = posY;
                             obj.frame = frame;
    
                         }
                         completion:^(BOOL finished){
                             NSLog(@"Done!");
                             ----> hey CLASS B im DONE do something!
       
                         }
         ];
    
    classB
    import classA

    -(void)doSomeThing{
    }


    Srry for asking twice :/
     
  4. thread starter macrumors newbie

    Joined:
    Oct 28, 2012
    #4
    no problem!

    i used protocol and delegate!

    :D

    Code:
    completion:^(BOOL finished){
                             NSLog(@"Done!");
                             if([obj isKindOfClass:[UIButton class]]){
                                 [self.delegate animationDone:(UIButton *)obj];
                             }
                         }
    
    
     

Share This Page