ios – 在Swift中使用LSApplicationWorkspace
我已将MobileCoreServices.framework添加到我的Xcode项目中,并将语句导入MobileCoreServices放在我的文件顶部.
我有代码行 let test = LSApplicationWorkspace.defaultWorkSpace() 而xcode表示Unresolved Identifier LSApplicationWorkspace 我试着清理和重建项目.有任何想法吗? 解决方法
Swift编译器告诉你它不知道一个名为LSApplicationWorkspace的类.这是因为它是一个私有类,没有在作为第三方开发人员可用的任何标题中描述.如果您在App Store审核期间使用LSApplicationWorkspace API被捕获,您的提交将被拒绝.鉴于此类包含在OS版本之间更改的API(由于未记录和私有),以及出于良好隐私原因而不能供第三方开发人员使用的API,使用它几乎肯定是一个非常糟糕的主意,即使您在技术上能够使用以下任一方法执行此操作.
>创建一个私有模块映射文件where you import a header you somehow acquired for the private framework that contains LSApplicationWorkspace.这种调用LSApplicationWorkspace的方式(或者实际上涉及使用Mobile CoreServices标头的任何方法 – 即除了下面提到的performSelector之外的任何方法)几乎肯定会从App Store审核启动你的应用程序提交,因为这种(最终)Objective-C方法调用的方法对于静态分析方法是可见的,Apple作为App Store审查的一部分运行在您的代码上. let LSApplicationWorkspace_class:AnyObject = NSClassFromString("LSApplicationWorkspace")! as AnyObject let workspace = LSApplicationWorkspace_class.perform(NSSelectorFromString("defaultWorkspace"))! as AnyObject 使用上面的代码,您现在可以获得一个LSApplicationWorkspace实例,您可以使用它来执行performSelector的代码 – 如果您知道它响应的选择器(…在您运行的特定操作系统版本中).尽管如此,使用LSApplicationWorkspace做任何事情都可能是一个坏主意. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |