Ios 从swift中的另一个目标访问变量

Ios 从swift中的另一个目标访问变量,ios,swift,Ios,Swift,我在ViewController.swift文件中有一些变量,该文件位于应用程序的根目录中(默认位置) 我想在KeyboardViewController.swift文件中使用它们,该文件位于自定义键盘目标中 如何访问这些变量 为了更清楚,我想从目标中的视图控制器访问我在ViewController.swift中声明的变量 您可以在这里看到我遇到问题的示例代码: ViewController.swift KeyboardViewController.swift 如果需要从扩展名中访问文件,只需

我在ViewController.swift文件中有一些变量,该文件位于应用程序的根目录中(默认位置) 我想在KeyboardViewController.swift文件中使用它们,该文件位于自定义键盘目标中

如何访问这些变量

为了更清楚,我想从目标中的视图控制器访问我在ViewController.swift中声明的变量

您可以在这里看到我遇到问题的示例代码:

ViewController.swift KeyboardViewController.swift
如果需要从扩展名中访问文件,只需将文件添加到扩展名目标


但是,如果您正在处理扩展,请注意,您不能访问每个扩展中存在的类的相同实例。您必须在扩展中创建一个单独的实例,并使用该实例。

我的问题已通过应用程序组解决。谢谢大家

解决方案:

1:通过单击应用程序>功能,打开应用程序和目标的应用程序组

2:单击加号并设置应用程序组的名称(例如:group.company.appname)。请注意,应用程序和目标应相同

3:像这样设置默认值

var defaults = NSUserDefaults(suiteName: "group.company.appname")
defaults?.setObject("Worked!", forKey: "Alarm")
defaults?.synchronize()
// Check for null pressEffect
if let restoredDefault =  defaults!.stringForKey("Alarm") {
     print(restoredDefault)
} else {
     print("Not Working!")
}
4:在您想要的地方(比如在目标中)读取NSUserDefaults,如下所示

var defaults = NSUserDefaults(suiteName: "group.company.appname")
defaults?.setObject("Worked!", forKey: "Alarm")
defaults?.synchronize()
// Check for null pressEffect
if let restoredDefault =  defaults!.stringForKey("Alarm") {
     print(restoredDefault)
} else {
     print("Not Working!")
}

你能用你的代码代替屏幕截图吗?@AliLashini因为如果我们想尝试你的代码,我们不能从你的问题中复制/粘贴它,我们必须重新键入你屏幕截图中的所有内容。我希望用户在application ViewController中选择自己的效果,然后我为用户在KeyboardViewController中选择的效果设置了代码做这件事的最佳方法是什么?我建议用谷歌搜索:)这里有一个类似的问题让你开始: