如何使用全局/静态变量OBJ-C

时间:2013-03-27 18:00:52

标签: iphone ios objective-c

我希望保存一个用于一个方法的变量,然后在另一个方法中为App调用它。这是否与global / extern / static变量有关?如果是这样,我想知道它将如何设置。我试图使用全局和静态但没有成功。

我试图保存newX和newY的信息

-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
...
    int newX = (int)(Button.center.x + valueX);
    int newY = (int)(Button.center.y + valueY);
...
}

然后在

中调用它
-(IBAction)clicked:(id)sender

{
    randX = arc4random() % 320;
    randY = arc4random() % 548;

    CGPoint randNewPlace = CGPointMake(randX, randY);
    Rand.center = randNewPlace;



    if (newX == randX || newY  == randY)
    {
        [Rand sendActionsForControlEvents:UIControlEventTouchUpInside];
    }
}

感谢。

3 个答案:

答案 0 :(得分:2)

如下所示

声明属性

@property(nonatomic,weak) int newX;
@property(nonatomic,weak) int newY;

-(void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
...
    self.newX = (int)(Button.center.x + valueX);
    self.newY = (int)(Button.center.y + valueY);
...

}

-(IBAction)clicked:(id)sender

{
   randX = arc4random() % 320;
   randY = arc4random() % 548;

   CGPoint randNewPlace = CGPointMake(randX, randY);
   Rand.center = randNewPlace;

   if (self.newX == randX || self.newY  == randY)
   {
      [Rand sendActionsForControlEvents:UIControlEventTouchUpInside];
   }
}

答案 1 :(得分:1)

如果要定义一个不变的常量变量,请在.h和.m

中定义它

例如,如果我想在我的.h中将黑色定义为十六进制字符串,我将其放在 @interface 之上。

// Default Black
extern NSString * const Black;

然后在我的.m上方 @implementation

// Default Black
NSString * const Black      = @"0xFF000000";

每当我调用变量黑色时,输出 0xFF000000 当然,您可以定义任何类型的变量,它不必是NSString。 extern只是将您的变量公开给应用程序的其余部分。

希望有所帮助!

答案 2 :(得分:0)

@property(nonatomic)int newX,newY;

要访问它们只是实例化该类,然后使用点表示法。 Class.newX