加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 在Swift中使用LSApplicationWorkspace

发布时间:2020-12-15 01:44:02 所属栏目:百科 来源:网络整理
导读:我已将MobileCoreServices.framework添加到我的Xcode项目中,并将语句导入MobileCoreServices放在我的文件顶部. 我有代码行 let test = LSApplicationWorkspace.defaultWorkSpace() 而xcode表示Unresolved Identifier 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审查的一部分运行在您的代码上.
>使用NSClassFromString:

let LSApplicationWorkspace_class:AnyObject = NSClassFromString("LSApplicationWorkspace")! as AnyObject
let workspace = LSApplicationWorkspace_class.perform(NSSelectorFromString("defaultWorkspace"))! as AnyObject

使用上面的代码,您现在可以获得一个LSApplicationWorkspace实例,您可以使用它来执行performSelector的代码 – 如果您知道它响应的选择器(…在您运行的特定操作系统版本中).尽管如此,使用LSApplicationWorkspace做任何事情都可能是一个坏主意.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读