我可以为此创建一个全局变量吗?

时间:2012-09-13 08:54:45

标签: objective-c

// This is the line which retrieves the current image on the UIView
CGImageRef originalImage = imageView.image.CGImage;

我在一个用于编辑图像的方法中声明了这个,可以用几个按钮调用它。

无论如何我可以全局声明这个变量,所以它总是保存UIView中加载的第一个图像吗?然后,我可以使用复制变量对例如进行所有编辑。

CGImageRef copyImage = originalImage;

我试图通过在头文件中声明它并将其在方法文件中实例化来使其全局化,但是当我尝试在另一个方法中访问全局变量时,就好像它没有被创建为全局变量一样。

非常感谢任何建议或更好的解决方案。

1 个答案:

答案 0 :(得分:0)

目前还不完全清楚你要做什么,但我要指出的是:

  1. 作业

              CGImageRef copyImage = originalImage;
    

    不会创建您的图片副本;它只会给你一个局部变量,指向与originalImage相同的图像;如果您修改copyImage,则还要修改originalImage;

  2. 如果您想制作CGImage的副本,以便在保持原始安全的同时自由修改它,请使用:

          CGImageRef img1 = CGImageCreateCopy(img2);
    
  3. 如果您想将原始图像保存在第2点下,只需在您的类中添加属性并在您的CGImage就位后立即初始化(例如,在viewDidLoad

           -(void) viewDidLoad {
               ...
               self.originalImage = CGImageCreateCopy(imageView.image.CGImage);
               ...
           }
    
  4. self.originalImage将是您的原始图片,而您可以自由修改imageView.image.CGImage

    不要忘记在dealloc方法中释放复制的图像。

    希望这有帮助。