使用ManagedSettings屏蔽社交类应用时ActivityCategoryToken编译报错求助
解决ManagedSettings屏蔽社交分类的编译错误
错误原因
你遇到的编译错误源于WWDC2022视频示例使用的是Beta版SDK,而正式版ManagedSettings API已调整:
ActivityCategoryToken仅保留了解码用的init(from:)初始化方法,不再支持手动创建实例ShieldSettings.applicationCategories的.specific分支现在直接接受ActivityCategory枚举集合,而非ActivityCategoryToken
修正后的代码
import FamilyControls import ManagedSettings extension ManagedSettingsStore.Name { static let social = Self("social") } public class ScreenTimeApiModule: Module { public func definition() -> ModuleDefinition { Name("ScreenTimeApi") Function("blockApps") { let socialStore = ManagedSettingsStore(named: .social) // 直接使用系统预定义的社交分类枚举值 socialStore.shield.applicationCategories = .specific([.social]) print("Successfully blocked apps") } } }
补充说明
如果你的项目依赖旧版iOS 16 Beta SDK,需通过用户活动选择器流程获取ActivityCategoryToken,但正式版SDK已简化为直接使用ActivityCategory的预定义枚举值(如.social、.productivity等)来指定要屏蔽的应用分类。
内容的提问来源于stack exchange,提问作者hampani
相关产品推荐
相关产品推荐

