亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何調試“發送到實例的未識別選擇器”錯誤

如何調試“發送到實例的未識別選擇器”錯誤

iOS
慕妹3146593 2019-06-15 10:41:27
如何調試“發送到實例的未識別選擇器”錯誤我正在為我的表視圖創建一個自定義表格單元格視圖。在將自定義單元格的圖像視圖(在故事板中)連接到我的代碼后,我會得到以下錯誤。[UITableViewCellContentView image]: unrecognized selector sent to instance 0x7fb4fad7fd20'*** First throw call stack:(    0   CoreFoundation                      0x000000010ccbb3f5 __exceptionPreprocess + 165    1   libobjc.A.dylib                     0x000000010e7e9bb7 objc_exception_throw + 45    2   CoreFoundation                      0x000000010ccc250d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205    3   CoreFoundation                      0x000000010cc1a7fc ___forwarding___ + 988    4   CoreFoundation                      0x000000010cc1a398 _CF_forwarding_prep_0 + 120    5   UIKit                               0x000000010d7d8881 -[UITableViewCell _marginWidth] + 151    6   UIKit                               0x000000010d7ca23d -[UITableViewCell _separatorFrame] + 70    7   UIKit                               0x000000010d7ca6fa -[UITableViewCell _updateSeparatorContent] + 360    8   UIKit                               0x000000010d7d4e85 -[UITableViewCell _setSectionLocation:animated:forceBackgroundSetup:] + 1174    9   UIKit                               0x000000010d634ea8 __53-[UITableView _configureCellForDisplay:forIndexPath:]_block_invoke + 1822)你能告訴我如何解決這個錯誤嗎?謝謝。我在我的項目中添加了一個異常斷點。這就是它斷裂的地方。  override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {        let cell = self.tableView.dequeueReusableCellWithIdentifier(kCellIdentifier) as ItemTableViewCell  <---------------但我的代碼中沒有使用“圖像”。
查看完整描述

3 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

嘗試將符號斷點設置為-[NSObject(NSObject) doesNotRecognizeSelector:]..只要點擊[+]在斷點導航器的左下角添加一個斷點。然后單擊“添加符號斷點”?,F在再現您的崩潰應該會讓您更好地了解代碼中的問題發生在哪里。


查看完整回答
反對 回復 2019-06-15
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

關鍵的第一步是分析錯誤消息:

[UITableViewCellContentView image]: unrecognized selector sent to instance

這告訴你“信息”image被“發送”到類UITableViewCellContentView的對象。(換句話說,有人試圖調用該方法。image關于UITableViewCellContentView類的對象。)

首先要問的是“這樣做有意義嗎?”可能是命名類具有Image方法,但不是image方法,因此調用時使用了錯誤的方法名。也可能是命名的方法是someMethod:someParm:,但是類實現了someMethod:someParm:anotherParm:,這意味著調用時省略了一個參數。

但是,大多數情況下,命名類甚至沒有任何與命名方法相似的方法,這意味著在失敗的調用中使用了指向錯誤對象的指針。

例如,可以這樣做:

NSArray* myArray = [myDictionary objectForKey:@"values"];NSString* myString = [myArray objectAtIndex:5];

并得到一個大致如下的錯誤:

[__NSDictionaryI objectAtIndex:] unrecognized selector sent to instance

因為從myDictionary實際上,是一個NSDicary,而不是預期的NSArray。

不幸的是,最令人困惑的是,這種錯誤發生在UI系統代碼中,而不是在您自己的代碼中。如果您以某種方式將錯誤的對象傳遞給系統接口,或者在InterfaceBuilder或其他地方配置了錯誤的類,則可能會發生這種情況。


查看完整回答
反對 回復 2019-06-15
  • 3 回答
  • 0 關注
  • 371 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號