我正在尝试访问SBMediaController,但我的应用程序崩溃了。我的目标是停止使用[[[SBMediaController] sharedInstance] stop]
我使用私有标头来访问privateframeworks,并且可以使用GSLockDevice()来锁定屏幕,所以我认为我的导入应该是finde。 我注意到像GraphicServices.framework这样的私有框架中没有SpringBoard.framework,这可能是问题吗? 我的错误:
dyld: Symbol not found: _OBJC_CLASS_$_SBMediaController
Referenced from: /var/mobile/Applications/D1CB0D98-1858-406C-AF4B 254BBEA7A73D/iTest.app/iTest
Expected in: flat namespace
答案 0 :(得分:2)
您无法与SpringBoard链接。你必须在运行时使用objc_getClass()来获取类,如下所示:
SBMediaController *controller = [objc_getClass("SBMediaController" sharedInstance];
顺便说一句,这只有在你的代码在SpringBoard中运行时才会起作用(也就是'tweak'或MobileSubstrate扩展)。如果您的代码在自己的应用程序中运行(这是您的情况),您应该使用Apple提供的MediaPlayer框架。