保存用作方法的變量,然後在另一個方法中調用。
實現時會不會用到全局/外部/靜態變量?如果需要應該怎麼用?
我試過用全局和靜態,但是都失敗了。
代碼中用來保存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