1

スペースを節約するために拡大/縮小する今日の拡張機能を作成しています。通知センターにあるのですが、NSNotificationCenter に問題があります。visibility() 関数を呼び出すと、ビューは正常に縮小して拡大しますが、通知を投稿しようとすると、拡張機能は失敗し、代わりにリロードを試みます (少なくとも 1 回目、2 回目は、拡張機能が「読み込めません」と言うだけです)。 "。 どうしてこれなの?

var NSNotificationDidChoose = "NSNotificationDidChoose"    
@IBOutlet var tableView: UITableView!    
@IBOutlet var activityIndicator: UIActivityIndicatorView!    
@IBAction func shrink(sender: AnyObject) {
    //visibility(["bool":false])works fine here
    NSNotificationCenter.defaultCenter().postNotificationName(NSNotificationDidChoose, object: nil, userInfo: ["bool":false])
        //Crashes and the extension reloads


}
@IBAction func unshrink(sender: AnyObject) {
    //visibility(["bool":true]) works fine here
    NSNotificationCenter.defaultCenter().postNotificationName(NSNotificationDidChoose, object: nil, userInfo: ["bool":true]) 
//Crashes and the extension reloads
}
@IBOutlet var buttonview: UIView!

func visibility(boole:[NSObject:AnyObject]) {
    var bool = boole["bool"] as Bool
    println(bool)
    tableView.hidden = !bool
    activityIndicator.hidden = !bool
    if bool {
        self.preferredContentSize = CGSize(width: 350, height: 420)
    } else {
        self.preferredContentSize = CGSize(width: 350, height: buttonview.frame.height+25)
    }
}
override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(true)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "visibility:", name: NSNotificationDidChoose, object: nil)
}
4

1 に答える 1

0

通知メソッドの引数は ですNSNotification。これを試して。

func visibility(notif: NSNotification) {
    let boole = notif.userInfo!
    var bool = boole["bool"] as Bool
    ....
}
于 2015-01-26T02:40:13.367 に答える