保存用作方法的变量,然后在另一个方法中调用。
实现时会不会用到全局/外部/静态变量?如果需要应该怎么用?
我试过用全局和静态,但是都失败了。
代码中用来保存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];
}
}
你是做Android转iOS的么?在Objc中没有Java里全局变量的这个概念,只能够通过单例实现类似的效果。
创建一个GloubVariables对象保存需要保存的内容:
//////////////////////////////////////////////////////////////////////////
GloubVariables.h
@interface GloubVariables : NSObject
{
int newX;
int newY;
}
@property(assin,nonatomic) int newX;
@property(assin,nonatomic) int newY;
+(GloubVariables *)sharedInstance;
@end
//////////////////////////////////////////////////////////////////////////
GloubVariables.m
#import "GloubVariables.h"
@implementation GloubVariables
@synthesize newX;
@synthesize newY;
static GloubVariables *instance_;
+(GloubVariables *)sharedInstance
{
@synchronized(self)
{
if(instance_ == nil)
{
instance_ = [[GloubVariables alloc] init];
}
}
return instance_;
}
@end
//////////////////////////////////////////////////////////////////////////
然后需要用到的地方:
[GloubVariables sharedInstance].newX
[GloubVariables sharedInstance].newY
这样
声明属性:
@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];
}
}