我得到這個控制檯消息崩潰:[NSCFArray行]:無法識別的選擇發送到實例0x3953a20
終止應用程序由於未捕獲的異常 'NSInvalidArgumentException' 的,理由是:「*** - [NSCFArray行]: 無法識別的選擇發送到實例0x3953a20'
這發生在我滾動槽,從字典的陣列獲取數據的表。
我得到這個控制檯消息崩潰:[NSCFArray行]:無法識別的選擇發送到實例0x3953a20
終止應用程序由於未捕獲的異常 'NSInvalidArgumentException' 的,理由是:「*** - [NSCFArray行]: 無法識別的選擇發送到實例0x3953a20'
這發生在我滾動槽,從字典的陣列獲取數據的表。
查看崩潰日誌的堆棧跟蹤以查看確切發生此調用的位置。
如果您要發送的變量-row未實際輸入爲NSArray,則可能是因爲未遵循該變量的內存管理規則。這些相同的症狀通常是由此引起的。響應-row的東西可能曾經存在過,因爲你沒有 - 保留它而被解除分配,然後NSArray被分配到那個地方。
運行「Build &分析」,並重新審查內存管理指南,直到您在睡夢中知道它們。
問題是,名爲'行'的變量在某種程度上被解除分配。 – 2010-06-24 10:55:34
看起來你發送一個row
消息到NSArray
。在NSArray
類中沒有定義行方法。如果您正在使用一個表,我的猜測是,你想送「行」到indexPath
參數來獲取位置,然後讓您的數據陣列在該位置的數據:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// first row will be like 0
NSUInteger row = [indexPath row];
// get the same row position in your data array
id data = [YOUR_DATA_ARRAY objectAtIndex:row];
}
這會給你的該行的數字位置。一個警告:「行」不是基礎NSIndexPath類的一部分。這是added as a category in UIKit。
我們可以看到一些代碼嗎?看起來像你試圖讓'NSIndexPath'的行索引傳遞給'-cellForRowAtIndexPath:'。 – 2010-06-17 18:01:08