我已经将MobileCoreServices.framework添加到我的Xcode项目中,并将语句import MobileCoreServices放在文件的顶部。
我有代码行
let test = LSApplicationWorkspace.defaultWorkSpace()
xcode说Unresolved Identifier LSApplicationWorkspace
我试着打扫和重建这个项目。有什么想法吗?
发布于 2016-11-04 04:49:45
点1: LSApplicationWorkspace是私有api,所以如果您使用它并将应用程序上传到应用程序商店,它将被拒绝。
Point 2:如果您有任何内部应用程序,并且仍然希望在应用程序中使用它,那么下面是使用它的方法。
MobileCoreServices框架LSApplicationWorkspace.h文件,与此处提供的代码"https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/MobileCoreServices.framework/LSApplicationWorkspace.h“完全相同。LSApplicationWorkspace.h文件添加到您的包中#import "LSApplicationWorkspace.h"import MobileCoreServices并添加代码let test = LSApplicationWorkspace.defaultWorkSpace(),这样就可以正常工作了。注意:对于使用任何私有头的,必须将其.h文件包含到代码中。您可以通过搜索google中的“运行时标头”来找到任何私有标题。您将获得所有运行时头。要在您的快速代码中包含该标头,您需要通过桥接头。
发布于 2016-10-30 10:49:58
Swift编译器告诉您,它不知道一个名为LSApplicationWorkspace的类。这是因为它是一个私有类,您可以作为第三方开发人员在任何标题中都没有描述它。如果您在APIs评审期间使用LSApplicationWorkspace API时被发现,您的提交将被拒绝。由于这个类包含在OS版本之间更改的API(因为它是无文档的和私有的),以及由于良好的隐私原因而无法为第三方开发者所用的API,那么使用它几乎肯定是一个非常糟糕的主意,即使您在技术上能够使用以下任何一种方法。
let LSApplicationWorkspace_class:AnyObject = NSClassFromString("LSApplicationWorkspace")! as AnyObject
let workspace = LSApplicationWorkspace_class.perform(NSSelectorFromString("defaultWorkspace"))! as AnyObject 使用上面的代码,您现在可以得到一个LSApplicationWorkspace实例,您可以用它来执行performSelector代码--如果您知道它响应什么选择器(…)在您正在运行的特定操作系统版本中)。不过,使用LSApplicationWorkspace做任何事情都可能是个坏主意。
https://stackoverflow.com/questions/35807764
复制相似问题