首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LSApplicationWorkspace在Swift中的应用

LSApplicationWorkspace在Swift中的应用
EN

Stack Overflow用户
提问于 2016-03-04 23:11:50
回答 2查看 3.5K关注 0票数 4

我已经将MobileCoreServices.framework添加到我的Xcode项目中,并将语句import MobileCoreServices放在文件的顶部。

我有代码行

let test = LSApplicationWorkspace.defaultWorkSpace()

xcode说Unresolved Identifier LSApplicationWorkspace

我试着打扫和重建这个项目。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2016-11-04 04:49:45

点1: LSApplicationWorkspace是私有api,所以如果您使用它并将应用程序上传到应用程序商店,它将被拒绝。

Point 2:如果您有任何内部应用程序,并且仍然希望在应用程序中使用它,那么下面是使用它的方法。

  1. 在包中添加MobileCoreServices框架
  2. 使用代码创建LSApplicationWorkspace.h文件,与此处提供的代码"https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/MobileCoreServices.framework/LSApplicationWorkspace.h“完全相同。
  3. 现在将这个LSApplicationWorkspace.h文件添加到您的包中
  4. 为您的快速应用程序创建桥接头
  5. 在桥接头中添加#import "LSApplicationWorkspace.h"
  6. 现在,在当前文件中添加import MobileCoreServices并添加代码let test = LSApplicationWorkspace.defaultWorkSpace(),这样就可以正常工作了。

注意:对于使用任何私有头的,必须将其.h文件包含到代码中。您可以通过搜索google中的“运行时标头”来找到任何私有标题。您将获得所有运行时头。要在您的快速代码中包含该标头,您需要通过桥接头。

票数 6
EN

Stack Overflow用户

发布于 2016-10-30 10:49:58

Swift编译器告诉您,它不知道一个名为LSApplicationWorkspace的类。这是因为它是一个私有类,您可以作为第三方开发人员在任何标题中都没有描述它。如果您在APIs评审期间使用LSApplicationWorkspace API时被发现,您的提交将被拒绝。由于这个类包含在OS版本之间更改的API(因为它是无文档的和私有的),以及由于良好的隐私原因而无法为第三方开发者所用的API,那么使用它几乎肯定是一个非常糟糕的主意,即使您在技术上能够使用以下任何一种方法。

  1. 创建一个私有模块映射文件在其中,您以某种方式为包含LSApplicationWorkspace的私有框架导入了一个标头。。这种调用LSApplicationWorkspace的方式(或者任何涉及为移动CoreServices使用标头的方法--即除了下面提到的performSelector之外的任何方法)几乎肯定会从Apple审查中引导您的应用程序提交,因为这种方法(最终)-C方法调用将对静态分析方法是可见的,苹果在您的代码上运行,作为Apple审查的一部分。
  2. 使用NSClassFromString:
代码语言:javascript
复制
let LSApplicationWorkspace_class:AnyObject = NSClassFromString("LSApplicationWorkspace")! as AnyObject
let workspace = LSApplicationWorkspace_class.perform(NSSelectorFromString("defaultWorkspace"))! as AnyObject 

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35807764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档