首页 > 解决方案 > 在 Sirikit IntentHandler 中无法访问单例

问题描述

我有一个项目,我想将 Sirikit 添加到其中。我添加了意图并希望将值存储在我的数据存储领域中,当我尝试访问用于创建此任务的函数时,我得到了一个错误。这是我下面的代码

extension IntentHandler : INCreateTaskListIntentHandling {

    public func handle(intent: INCreateTaskListIntent,
                       completion: @escaping (INCreateTaskListIntentResponse) -> Swift.Void) {

        guard let title = intent.title else {
            completion(INCreateTaskListIntentResponse(code: .failure, userActivity: nil))
            return
        }



        CategoryFunctions.instance.createList(name: title.spokenPhrase,.....)

        var tasks: [INTask] = []
        if let taskTitles = intent.taskTitles {
            let taskTitlesStrings = taskTitles.map {
                taskTitle -> String in
                return taskTitle.spokenPhrase
            }
            tasks = createTasks(fromTitles: taskTitlesStrings)
            CategoryFunctions.instance.add(tasks: taskTitlesStrings, toList: title.spokenPhrase)
        }

        let response = INCreateTaskListIntentResponse(code: .success, userActivity: nil)
        response.createdTaskList = INTaskList(title: title,
                                              tasks: tasks,
                                              groupName: nil,
                                              createdDateComponents: nil,
                                              modifiedDateComponents: nil,
                                              identifier: nil)
        completion(response)
    }

}

这个单例实例化在我的应用程序中运行良好,但我不知道为什么我会收到一条错误消息Use of unresolved identifier 'CategoryFunctions'

我的 CategoryFunctions 单例

class CategoryFunctions {

    let appDelegate = UIApplication.shared.delegate as! AppDelegate

    var database:Realm!
    static let instance = CategoryFunctions()
    .....
...

标签: swiftsirikit

解决方案


在 xcode 中选择您的文件,在右侧,选择 File Inspector,然后在 Target Membership 下,选择您的 Intent。


推荐阅读