剛開始使用iPhone開發和Objective-C。何時用@selector使用冒號
昨天我在想的addObserver在我的觀點的通知,我不斷收到此錯誤:
unrecognized selector sent to instance
我跟蹤它的事實,我需要包括尾隨冒號我選擇參數:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(nameOfMySelector:) name:@"BBLocationServicesAreDisabled" object:nil];
今天,我以爲我是聰明的,因爲設置操作參數的按鈕時,我想起昨天我的錯誤,並增加結腸行動的說法。 action參數需要一個@selector,就像設置NSNotification的觀察者時的selector參數一樣,所以我認爲我做的是正確的。
然而,用下面的代碼:
[self.callToActionButton addTarget:self action:@selector(nameOfMySelector:) forControlEvents:UIControlEventTouchUpInside];
我得到確切的同樣的錯誤:
unrecognized selector sent to instance
是怎麼回事?爲什麼一個@選擇器需要一個尾部冒號,而另一個卻不需要?我應該遵循什麼規則,什麼時候應該包括什麼規則,什麼時候應該停止規則,爲什麼我不能總是隻做一個或另一個?
謝謝!
這是一個冒號,而不是分號。無論如何,你的`nameOfMySelector:`方法的原型是什麼?它想要什麼樣的論據? – BoltClock 2011-02-10 05:14:32
你是否也指兩種情況下的相同方法? – BoltClock 2011-02-10 05:27:01