程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-在objective-c中使用全局/靜態變量

ios-在objective-c中使用全局/靜態變量

編輯:編程綜合問答
在objective-c中使用全局/靜態變量

保存用作方法的變量,然後在另一個方法中調用。
實現時會不會用到全局/外部/靜態變量?如果需要應該怎麼用?

我試過用全局和靜態,但是都失敗了。

代碼中用來保存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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved