我有一个UITableView,它有多个Prototype单元格(具有不同的标识符),我有一个单独的类我的单元格!这是我创建我的TableViewController的方式: -
import UIKit
class PostTableViewController: UITableViewController, UITextFieldDelegate {
var postArray = [["Sean Paul","Got To Love You"],["California","21 January 2018"],["Martin Garrix"]]
override func viewDidLoad() {
super.viewDidLoad()
tableView.rowHeight = UITableViewAutomaticDimension;
tableView.estimatedRowHeight = 44
}
override func viewDidAppear(animated: Bool) {
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 3
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码从远程下载后播放视频。
let player = AVPlayer(url: URL(dataRepresentation: VideoService.instance.videoInfoArray[0].video, relativeTo: nil)!)
let playerController = AVPlayerViewController()
playerController.player = player
present(playerController, animated: true) {
player.play()
}
Run Code Online (Sandbox Code Playgroud)
我的 VideoService 类是一个单例类,视频变量类型是Data()。但是,当我尝试使用以下代码播放视频时,它不起作用。如何使用数据代表播放视频?
我正在使用核心数据,但我对NSManagedObjectContext. 我使用以下代码来保存我的图书数据。书籍数据保存在我的应用程序扩展一侧,如下所示。扩展侧代码块的调用方式与主线程不同,如图所示。

我想知道这是否会因为滥用我的上下文而导致问题?
func saveBook() {
let book: Book = Book(context: viewContext)
let uuid = UUID()
book.sessionId = uuid
book.appId = session.appId
book.startedAt = session.startedAt
book.createdBy = AppData.installId
coreData.saveSync()
}
func saveSync() {
let privateContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
privateContext.parent = viewContext
privateContext.perform {
do {
try privateContext.save()
viewContext.performAndWait {
do {
try viewContext.save()
} catch {
let nsError = error as NSError
print("Unresolved error \(nsError), \(nsError.userInfo)")
}
}
} catch {
let nsError = error as NSError
print("Unresolved …Run Code Online (Sandbox Code Playgroud) 我有一个带有 5 个视图控制器的选项卡栏。在我的第三个视图控制器中,我有一个表视图及其 didSelect 方法,我使用以下代码以编程方式将 TabBar 选项卡更改为第一个选项卡。 tabBarController?.selectedViewController = tabBarController.childViewControllers[0]
在我的第一个视图控制器中,childViewControllers[0]有 viewDidAppear 方法,包括我的 ActivityIndicator 和一些 API 调用。当我使用上面的代码以编程方式更改标签栏时,第三个视图控制器保留在屏幕上,一旦 viewDidAppear 方法完成,它就会进行切换,这会导致用户有冻结感。但是,当我直接按下第一个视图控制器时,第一个视图控制器出现,显示活动指示器进行 API 调用。其原因可能是什么?我该如何解决?