我想用这种方法在一个块内重新加载表数据:
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',快速替代的替代方案是什么?
'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()中?