我正在尝试访问SBMediaController,但我的应用程序崩溃了.我的目标是使用[[[SBMediaController] sharedInstance]停止后台停止任何播放音乐应用程序
我使用私有标头来访问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
最佳答案 您无法与SpringBoard链接.你必须在运行时使用objc_getClass()来获取类,如下所示:
SBMediaController *controller = [objc_getClass("SBMediaController" sharedInstance];
顺便说一句,这只有在你的代码在SpringBoard中运行时才有效(也就是’tweak’或MobileSubstrate扩展).如果您的代码在其自己的应用程序中运行(这是您的情况),则应使用Apple提供的MediaPlayer框架.