내 MediaPickerController가 매우 느립니다 (내 현재 프로젝트에서 Swift 2.2 사용). 프로젝트에서 이전 버전과 (네트워킹 코드를 추가 한 이후의 대부분) 상당히 빠름에도 불구하고.
내 코드에서 사용자가 "노래 찾기"버튼을 누를 때만 MPMediaPickerController를 인스턴스화했습니다. 메인 뷰 로딩시에 MPMediaPickerController의 인스턴스를 생성함으로써 (필자는 클래스 선언, viewDidLoad 외부에 위치 시켰습니다), 어떻게 든로드 시간을 1 초 미만으로 줄일 수있었습니다 (때때로 마지막 순간에 MPMediaPickerController를 인스턴스화 한 경우에도 표시되지 않았습니다.
TLDR이 쓰기 :
이 대신
import UIKit
import MediaPlayer
import MobileCoreServices
class SomeViewController: UIViewController, MPMediaPickerControllerDelegate {
var mediaPickerController = MPMediaPickerController(mediaTypes: .AnyAudio)
func viewDidLoad() {
mediaPickerController.delegate = self
mediaPickerController.prompt = "Select a song that you like"
}
@IBAction func buttonWasTapped(sender: AnyObject) {
self.presentViewController(mediaPickerController, animated: true, completion: nil)
}
}
: (그것은을가`MPMediaPickerController`이 좋은 메모리 시민 내 버튼을 탭되면 난 단지 mediaPickerController를 인스턴스화하는 방법
import UIKit
import MediaPlayer
import MobileCoreServices
class SomeViewController: UIViewController, MPMediaPickerControllerDelegate {
func viewDidLoad() {
}
@IBAction func buttonWasTapped(sender: AnyObject) {
var mediaPickerController = MPMediaPickerController(mediaTypes: .AnyAudio)
mediaPickerController.delegate = self
mediaPickerController.prompt = "Select a song that you like"
self.presentViewController(mediaPickerController, animated: true, completion: nil)
}
}
을 통지합니다. 말 그대로 탐색 스택에 푸시 될 때까지 아무 것도로드하지 않습니다. – holex