我的iOS应用程序访问用户的照片ALAssetsLibrary.当我更改应用程序的隐私设置(设置→隐私→照片)时,应用程序会被系统(SIGKILL)杀死.这是一个错误吗?
我正在开发一个目标c的IOS应用程序,它显示蓝牙BLE的心率和相应的图形.如果应用程序在前台运行,一切都没问题.
但是如果应用程序进入后台模式,BLE测量仍然继续(我正在使用"使用蓝牙LE配件")但是在几分钟或几秒钟之后它被操作系统杀死,并显示消息"iPhone上的应用程序意外退出 - > 来自调试器的消息:由于信号9而终止.
我不知道为什么这种情况只发生在后台模式而不是前景当我在iPhone上看到应用程序时?
前台或后台的CPU和内存使用量相同,约为130%和16 MB.
该应用程序在2:40后被杀死

我的申请中有以下情况:
我的应用程序中有一个音乐系统,我曾经MPMusicPlayerController播放音乐; 到目前为止,每件事情都很好.
我的问题:当用户开始在我的应用程序中播放音乐时,一段时间后终止,音乐无法停止,因为我正在使用该[MPMusicPlayerController systemMusicPlayer]对象.我知道还有另外一种选择applicationMusicPlayer,但它停止在后台播放音乐,这不符合我的要求.
当用户终止应用程序时,如何停止播放音乐?
我有一些代码试图阻止它,applicationWillTerminate:但它只适用于某些情况:
如果我按两次主页按钮并从多任务UI终止应用程序,则应用程序可以停止音乐播放器.
如果我按下主页按钮一次然后转到主屏幕,之后我按两次主页按钮并终止应用程序然后它无法停止我的音乐播放器.
我试图applicationWillTerminate:在第二个例子(从上面)中设置一个断点,应用程序崩溃并且没有执行我的代码,这与第一种情况不同.
UPDAT
我知道当我使用MPMusicPlayerController后台模式时不需要它,因为它在本机音乐播放器中启动音乐.
任何帮助,将不胜感激.
我有一个使用MPMusicPlayerController的音乐应用程序.
我最初使用iOS 9下的systemMusicPlayer选项编写了它.我遇到了一些问题,播放器在某些情况下没有正确关闭所以我切换到appplicationMusicPlayer(请参阅 退出应用程序导致错误"来自调试器的消息:由于信号9终止")
但是,作为一个应用程序播放器,我无法获得很多好处,如控制中心处理,蓝牙数据显示等.
所以,我切换回systemMusicPlayer.我还改为Xcode 9.2和iOS 10.3的编译目标.
现在,当我运行我的应用程序时,它可能需要几秒钟才能响应播放/暂停或下一个/上一个等控件.我的整个用户界面痛苦无反应.
我尝试切换回applicationMusicPlayer,重新编译,确定 - UI处于正常速度.
所以现在我处于一个糟糕的位置 - 使用systemMusicPlayer,该应用程序几乎无法使用,但是使用applicationMusicPlayer我失去了很多功能.
这似乎与我的iPhone上的iOS 11.2.2直接相关,或与iOS 10.3+的目标有关
有没有人知道发生了什么以及如何解决它
编辑:我创建了一个非常基本的播放器,它似乎在任一模式下工作正常,所以现在我很困惑 - 我将测试其他MP命令,看看问题是什么,但因为即使我的UI减慢我不是当然.
编辑2:我相信我发现罪魁祸首是NotificationCenter,并且还从MPMusicPlayerController获取状态.我已经更新了下面显示问题的示例代码.一旦运行,单击"下一步"按钮有时会很慢,但单击"上一步"可能会导致延迟最多两秒!
如果您想创建一个简单的播放器,这是基本代码.务必在故事板中添加三个按钮并相应地连接它们.
//
// ViewController.swift
// junkplayer
//
import UIKit
import MediaPlayer
let notificationCenter = NotificationCenter.default
let myMP:MPMusicPlayerController = MPMusicPlayerController.systemMusicPlayer
//let myMP:MPMusicPlayerController = MPMusicPlayerController.applicationMusicPlayer()
class ViewController: UIViewController {
@IBOutlet weak var xxx: UIButton!
@IBOutlet weak var nextbut: UIButton!
@IBOutlet weak var prevbut: UIButton!
var qrySongs = MPMediaQuery()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup …Run Code Online (Sandbox Code Playgroud)