Arrayから要素を取得する際にエラーが出てしまいます
現在swiftでAppDelegateで宣言したNSMutableArrayの要素を別画面で保存・取得したいと思っています。
(AppDelegateで宣言・初期化→A画面で保存→B画面で取り出し)
しかし、B画面で取得する時に
fatal error: unexpectedly found nil while unwrapping an Optional value
のエラーで止まってしまいます。
ソースコードはこちらになります。
AppDelegate
var answerArray:NSMutableArray?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions:
[NSObject: AnyObject]?) -> Bool {
let answerArray = [0,0,0,0,0,0]
print(answerArray)//[0,0,0,0,0,0]
}
aViewController
var answerArray:NSMutableArray?
override func viewDidLoad() {
//bボタン
q1_1btn = UIButton()
q1_1btn.frame = CGRectMake(200,50,60,60)
q1_1btn.setTitle("ボタンA", forState: UIControlState.Normal)
q1_1btn.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
q1_1btn.tag = 1
q1_1btn.addTarget(self, action: #selector(QuestionViewController.selectbtn(_:)), forControlEvents: .TouchUpInside)
self.view.addSubview(q1_1btn)
}
internal func selectbtn(sender: UIButton){
print("sender.tag:\(sender.tag)") //1
let appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
//押したボタンのタグをarrayに格納
let tag = sender.tag
appDelegate.answerArray![0] = tag
let secondViewController = bViewController()
self.navigationController?.pushViewController(secondViewController, animated: true)
}
bViewController
var str:NSArray?
override func viewDidLoad() {
self.view.backgroundColor = UIColor.whiteColor();
let appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let num:Int = appDelegate.answerArray![0] as!Int //ここでfatal error
print(appDelegate.answerArray) //nilと返されます
}