我的程序编译成功,但是当我按下按钮时,它会崩溃.这是viewController.
swift:
import UIKit class ViewController: UIViewController,UIActionSheetDelegate{ @IBOutlet var button:UIButton override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view,typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func buttonPressed(AnyObject) { let choice = UIActionSheet(title: "Select source",delegate: self,cancelButtonTitle: "Cancel",destructiveButtonTitle: nil,otherButtonTitles:"camera","libary") choice.showInView(self.view) } }
错误出现在这一行:
let choice = UIActionSheet(title: "Select source","library")
这是错误文本:
EXC_BAD_ACCESS(代码= 2,地址= 0x0)
我试图将let切换到var,在不同的模拟器上运行它,但结果是一样的.
解决方法
试过,但无法弄清楚异常.最后我得到了这样的解决方案:
var myActionSheet:UIActionSheet = UIActionSheet() var title : String? = "Select Source" myActionSheet.title = title myActionSheet.delegate = self myActionSheet.addButtonWithTitle("camera") myActionSheet.addButtonWithTitle("Library") myActionSheet.addButtonWithTitle("Cancel") myActionSheet.cancelButtonIndex = 2 myActionSheet.showInView(self.view)
UIActionSheet代表
func actionSheet(myActionSheet: UIActionSheet!,clickedButtonAtIndex buttonIndex: Int){ println("the index is %d",buttonIndex) }