我正在制作我的第一个应用程序,这是我最大的问题。我想发一个通知,我可以根据用户输入添加动作。我创建了一个没有操作的类别,然后使用for循环我尝试创建操作,同时将其添加到类别中,但这里显示的问题是: 无法分配属性:'操作'是一个只获得属性
这是我的代码:
var category5 = UNNotificationCategory(identifier: "category.5", actions: [], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: "placeholdertext", options: [])
for index in 0..<workingDays[3].subjects!.count {
let action = UNNotificationAction(identifier: "\(workingDays[3].subjects![index + 1].subjectName).5", title: workingDays[3].subjects![index + 1].subjectName, options: .foreground)
category5.actions += [action] // here I get the error
// category5.actions.append(action) // I tried this as well but I get the same error
}
我如何解决我的问题,还有另一种方法吗?我希望actions数组是可变的,所以我以后也可以从中删除一些操作。
任何帮助都会非常感激,对我而言,这意味着梦想成真!
答案 0 :(得分:1)
如错误所示,UNNotificationCategory.actions
数组是只读的,可以通过UNNotificationCategory
构造函数方法进行修改,因此尝试这种方式必须适合您
var actionsToAdd : [UNNotificationAction] = []
for index in 0..<workingDays[3].subjects!.count {
let action = UNNotificationAction(identifier: "\(workingDays[3].subjects![index + 1].subjectName).5", title: workingDays[3].subjects![index + 1].subjectName, options: .foreground)
actionsToAdd.append(action)
}
var category5 = UNNotificationCategory(identifier: "category.5", actions: actionsToAdd, intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: "placeholdertext", options: [])