当前位置: 首页 > 面试题库 >

快速替代performSelectorOnMainThread

冉伯寅
2023-03-14
问题内容

我想用这种方法在一个块内重新加载表数据:

import UIKit
import AssetsLibrary

class AlbumsTableViewController: UITableViewController {

    var albums:ALAssetsGroup[] = []

    func loadAlbums(){
        let library = IAAssetsLibraryDefaultInstance

        library.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupAll),
            usingBlock: {(group, stop) in
                if group {
                    self.albums.append(group)
                }
                else {
                    dispatch_async(dispatch_get_main_queue(), {

                        self.tableView.reloadData()

                    })
                }
            }, failureBlock: { (error:NSError!) in println("Problem loading albums: \(error)") })

    }

    override func viewDidLoad() {
        super.viewDidLoad()
        loadAlbums()

        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
        //self.navigationItem.rightBarButtonItem = self.editButtonItem
    }

但是else块将不会执行。我得到的错误是:

'performSelectorOnMainThread' is unavailable: 'performSelector' methods are unavailable

那么'performSelectorOnMainThread',快速替代的替代方案是什么?

更新:

我现在收到中止错误。


问题答案:

这个简单的C函数:

dispatch_async(dispatch_get_main_queue(), {

        // DO SOMETHING ON THE MAINTHREAD
        self.tableView.reloadData()
        })

如何使用以下命令启动功能:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {

        loadAlbums()

})

在viewDidLoad()中?



 类似资料:
  • 我从一段时间开始学习雨燕,我知道结构和阶级之间的区别。主要区别是结构是值型,类是引用型,但不明白什么时候用结构代替类。请解释一下。 例如,在协议的情况下: 其次,我们将类类型的协议如下所示: 所以,请解释我,当我们必须使用结构类型或类类型的协议。

  • 我有一堆XML文档,其中包含我需要用假数据替换的个人信息。Person节点包含以下元素: UUID-必填项,不应触及。 名字-可选 LastName-可选 地址-可选 个人身份-必需 一个人可能会出现很多次,在这种情况下应该使用相同的假数据,即如果两个person节点具有相同的personID,那么它们都应该接收到相同的假ID。 我已经实现了一些Java代码,这些代码从XML字符串构建一个DOM树

  • 问题内容: 我有一个3d数组,其中填充了从0到N的整数。我需要一个与该数组等于1、2、3,… N的位置对应的索引列表。我可以使用np.where进行如下操作: 但这很慢。根据这个问题 快速python numpy在哪里功能? 应该可以大大加快索引搜索的速度,但是我无法将那里提出的方法转移到我获取实际索引的问题上。加快上述代码的最佳方法是什么? 作为附加组件:我想稍后存储索引,使用np.ravel_

  • 问题内容: 我知道这个话题已经解决了上千次。但是我找不到解决办法。 我正在尝试计算列表(df2.list2)的列中出现列表(df1.list1的每一行)的频率。所有列表仅包含唯一值。List1包含约300.000行,list2包含30.000行。 我有一个有效的代码,但是它的运行速度非常慢(因为我使用的是迭代程序)。我也尝试过itertuples(),但它给了我一个错误(“要解压缩的值太多(预期2

  • 问题内容: 我得到这样的定义:顾名思义,快速失败的迭代器一旦意识到 自迭代开始以来 就已经改变了Collection的结构,它就会失败。 自迭代开始以来 是什么意思?是在 Iterator it = set.iterator()之后的 这行代码的意思吗? 问题答案: 首先,它们是 快速 故障的,而不是故障 安全的 。 合同规定,对某些类型的集合进行结构修改(即插入/删除)会使集合中的现有迭代器无效

  • 据我所知,直线的意思是,那个变量运动得到乘以向量inputVec的x部分的绝对值,但我不明白接下来会发生什么。