[英]How to create an array of dispatch_block_t in Swift 2.0?
[英]How to convert [dispatch_block_t] to NSArray in Swift 2.0?
我已經像這樣創建了一個dispatch_block_t數組,
let actions: [dispatch_block_t] = [
{self.pickImages()},
{self.takePicture()}]
現在,我想將此[dispatch_block_t]
轉換為NSArray,以便將其傳遞給函數。 我試過將其強制轉換為NSArray。
let actionsArray: NSArray = actions as NSArray
但是我遇到了錯誤。
[dispatch_block_t]無法轉換為NSArray
更新:完整代碼,
import UIKit
import Foundation
import MobileCoreServices
import MediaPlayer
class AttachFilesViewController: UIViewController, UINavigationBarDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, MultiImagePickerControllerDelegate, MPMediaPickerControllerDelegate, UITableViewDataSource, UITableViewDelegate {
var tableView: UITableView = UITableView()
var imgPkr: MultiImagePickerController! //For picking image(s)
var cameraPkr: UIImagePickerController = UIImagePickerController() //For taking a picture
var menuView: btSimplePopUP!
var rightBarButtonItem = UIBarButtonItem()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.whiteColor()
//Creating Right bar button item
let buttonRight = UIButton(type: UIButtonType.Custom)
buttonRight.frame = CGRectMake(0, 0, 30, 30)
buttonRight.setImage(UIImage(named:"add.png"), forState: UIControlState.Normal)
buttonRight.addTarget(self, action: "openMenu:", forControlEvents: UIControlEvents.TouchUpInside)
rightBarButtonItem = UIBarButtonItem(customView: buttonRight)
tableView.delegate = self
tableView.dataSource = self
self.view.addSubview(tableView)
}
func openMenu(sender: UIButton){
if(menuView == nil){
let imgs = [UIImage(named: "pickImage.png")!,
UIImage(named: "takePicture.png")!,
UIImage(named: "pickVideo.png")!,
UIImage(named: "shootVideo.png")!,
UIImage(named: "recordAudio.png")!,
UIImage(named: "quit.png")!] as NSArray
let titles = ["Images",
"Capture",
"Videos",
"Shoot",
"Record",
"Cancel"] as NSArray
let actions: [dispatch_block_t] = [
{self.pickImages()},
{self.takePicture()},]
let actionsArray = NSArray(array: actions)
menuView = btSimplePopUP(itemImage: imgs as [AnyObject],
andTitles: titles as [AnyObject],
andActionArray: actionsArray as [AnyObject],
addToViewController: self)
self.view.addSubview(menuView)
menuView.show(BTPopUpAnimation.UPAnimateWithFade)
}else{
if(!menuView.isDescendantOfView(self.view)){
self.view.addSubview(menuView)
menuView.show(BTPopUpAnimation.UPAnimateWithFade)
}
}
}
//For picking image(s) from gallery
func pickImages(){
videoPkr = nil
globalStruct.groupType = true
imgPkr = MultiImagePickerController()
imgPkr.pickerDelegate = self
self.navigationController!.presentViewController(imgPkr, animated: true) {}
}
//For taking a picture with camera
func takePicture(){
imgPkr = nil
videoPkr = nil
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera){
self.cameraPkr = UIImagePickerController()
self.cameraPkr.delegate = self //UIImagePicker delegate
self.cameraPkr.allowsEditing = false
self.cameraPkr.sourceType = .Camera
self.cameraPkr.cameraCaptureMode = .Photo
self.cameraPkr.modalPresentationStyle = .FullScreen
self.navigationController!.presentViewController(self.cameraPkr, animated: true, completion: nil)
}else{
SCLAlertView().showError("No Camera!!", subTitle: "Sorry.. Your device does not have a camera!", closeButtonTitle: "Okay")
}
}
}
任何幫助將不勝感激。
我在以下答案的幫助下將[dispatch_block_t]轉換為NSArray: 如何在Swift 2.0中創建一個dispatch_block_t數組?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.