将图像设置为全局变量(在Swift中)



我正在尝试将图像设置为全局变量。更详细地解释一下:我有两个视图控制器。视图控制器1是菜单,视图控制器2是具有图像视图的视图控制器。

我想完成的是在第一个视图控制器中下载一个图像,将该图像设置为全局变量,并在视图控制器2中使用该图像2。

到目前为止,我有这个:

import UIKit
var globalImage = [String: UIImage]()

class ViewController: UIViewController {
    // this function hides the statusbar
    override func prefersStatusBarHidden() -> Bool {
        return true
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        // variables for accessing web images
        let url = NSURL(string: "http://www.fteunen.com/app/overLay.png")
        let urlRequest = NSURLRequest(URL: url!)
        NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue(), completionHandler: {
            response, data, error in
            if error != nil {
                println("Something happened i guess, not good!!")
            } else {
                //let image = UIImage(data: data)
                globalImage = UIImage(data: data)
            }
        })

    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

但不幸的是,这失败了,在globalImage = UIImage(data: data)行,它给出了一个错误,说*调用*中参数'inBundle'缺少参数

那么,只是某个地方有语法错误吗?或者还有其他方法吗?我的想法行得通吗?

提前感谢您的想法和解决方案!

UIImage
您正在将globalImage声明为Dictionary

var globalImage = [String: UIImage]()

以及为其分配一个CCD_ 4

globalImage = UIImage(data: data)

相反,尝试将globalImage声明为UIImage?

var globalImage:UIImage? = nil

optional用于将其设置为nil,您可以稍后对其进行初始化。如果有默认映像,您可以在此处进行设置。

当你想申报图像时,你可以使用

globalImage = UIImage(data: data)

要在第二视图控制器中使用图像,您应该检查它是否为零

if let image = globalImage{
  //Image has been set
}else{
  //Image has NOT been set
}

词典
如果你想使用Dictionary,你需要为UIImage 设置一个密钥

var globalImage = [String: UIImage]()
globalImage[“Second View Controller“] = UIImage(data:data)

您可以使用访问此图像

if let image = globalImage[“Second View Controller“] {
  //Image has been set
} else {
  //Image has NOT been set
}

您正在将globalImage声明为Dictionary

var globalImage = [String: UIImage]()

以及为其分配一个CCD_ 10

globalImage = UIImage(data: data)

也许这就是问题所在。。。

如果您希望globalImage是UIImage,请使用以下声明:

var globalImage: UIImage

相关内容

  • 没有找到相关文章

最新更新