我是Swift的初学者,我不知道所有的细节,所以如果这是一个愚蠢的问题,请原谅
我的应用程序处于相当高级的开发阶段,因此我希望尽可能少地混淆现有代码。我的问题是我想在我的应用程序中实现Today Extension,在其中我想显示一个tableView,它将显示来自我的“Plum”类的单个数组的数据,我需要一个方法来处理选择。不幸的是,当我将Plum的目标成员身份更改为TodayExtension时,会显示一大堆错误,因为来自该类的许多API不可用于TodayExtension。该类继承自AVAudioPlayer,因此大多数基本方法在Extension中不可用。 我试图创建一个帮助类,它将从Plum获取数组并将其返回到我的TableView但由于“使用未解析的标识符'Plum'”仍然无效
如何获取数组并使用该方法?
答案 0 :(得分:2)
我认为在添加今日扩展时你可能会有一些今天扩展的课程,
您可以使用App Group with User Defaults功能将数据从iOS应用程序传输到今天的Extension类
1)要设置数据,您可以使用
var defaults: NSUserDefaults = NSUserDefaults(suiteName: <GroupID>)!
defaults.setObject(<YourArray, forKey:<KeyName>)
2)在今天扩展目标的类中,您可以像这样获取该数组
var defaults: NSUserDefaults = NSUserDefaults(suiteName: <GroupID>)!
var <YourArray> = defaults.stringForKey(<KeyName>)
注意:这只是伪代码可能包含错误
答案 1 :(得分:0)
在今天的扩展中添加Plum类是个坏主意。扩展名应该是轻量级的,您只需要传输所需的数据。
在您的情况下,您可能需要标题和说明数组。因此,形成一个包含所需详细信息的字典数组,并将这些详细信息存储在App组用户默认值中,如@Hitesh answer。
在今天的扩展类中,从用户默认值中读取此数组,然后在表视图中显示详细信息。