从appDelegate访问viewController结构

时间:2017-05-17 16:09:27

标签: swift xcode

我在ViewController中定义了一个结构,如下所示:

struct Meme {
var topText : String
var bottomText : String
var originalImage : UIImage
var memedImage: UIImage
}

现在,当我尝试使用以下代码从appDelegate访问结构时,我得到一个未解析的标识符错误:

var memes = [Meme]()

有人可以解释为什么会发生这种情况,我如何从appDelegate访问viewController结构?

谢谢!

4 个答案:

答案 0 :(得分:0)

如果没有实例,则无法访问类的属性。

AppDeletegate文件中执行以下操作:

  // create instance of your viewcontroller class
  let viewController = ViewController() 
  // access the property
  viewController.memes = [Meme]()

答案 1 :(得分:0)

这可以通过另一种方式实现:

import UIKit

var memes = [Meme]()

class ViewController: UIViewController {

}

好的,模因不是UIViewController的范围,但是它们在同一个文件中,就像它们是全局变量一样。

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        print(memes[0].bottomText)

        return true
    }

祝你一切顺利。

答案 2 :(得分:0)

假设结构是在你所说的ViewController类中定义的,你将需要使用ViewController的命名空间以下列方式访问它:

var memes = [MyViewController.Meme]()

答案 3 :(得分:0)

我实际上已经很久以前就知道了这一点。对不起延迟更新。有相同问题的人,请创建一个名为“Meme.swift”的新swift文件,然后在该文件中编写meme结构。你的问题现在应该解决了。谢谢!