MapMapM 2013-03-28 02:16 采纳率: 0%
浏览 5303
已采纳

在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];
    }
}
  • 写回答

2条回答

  • 哈希Map 2013-03-28 02:36
    关注

    你是做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条)

报告相同问题?

悬赏问题

  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题