0

我正在开发 iPhone 应用程序,我创建了一个视图控制器,其中包含一个按钮和 tableViewController,它必须显示数据表单 sqlite3,我正在使用 xcode 3.4 我希望 viewController 中的按钮打开 TableViewController ,当我尝试打开该表时本身没有按钮我去情节提要并将原始数据放在 TableViewController 上,它正常加载 sqlite 的数据但是当我将原始数据放在 viewController 上并将按钮连接到 TableViewController 并使连接模式然后运行..当我按下按钮,它给了我以下异常: NSInvalidArgumentException', reason: '-[NSIndexPath isEqualToString:]: unrecognized selector sent to instance ...

例外是指 ( cellForRowAtIndexPath)中的一行

这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}

Books *temp= (Books *)[self.books objectAtIndex:indexPath.row];


// [cell setText:temp.bo_name];
[cell setText:[NSString stringWithFormat:@"%d - %@ - %d - %d - %d - %d - %@ - %f - %f - %@ - %f - %d - %@ - %d",temp.bo_id, temp.bo_name, temp.bo_au_id, temp.bo_pub_id, temp.bo_num_pages, temp.bo_publish_year, temp.bo_about, temp.bo_price, temp.bo_currency, temp.bo_cover_img, temp.bo_recomended, temp.bo_sec_id, temp.bo_path, temp.bo_sort]];

return cell;

}

编辑以添加在我的答案 - JeremyP 的评论中指定的实例变量的类型。

int bo_id; 
NSString *bo_name; 
int bo_au_id; 
int bo_pub_id; 
int bo_num_pages; 
int bo_publish_year; 
NSString *bo_about; 
double bo_price; 
double bo_currency; 
NSString *bo_cover_img; 
double bo_recomended; 
int bo_sec_id; 
NSString *bo_path; 
int bo_sort; 
4

2 回答 2

1

setText is deprecated. Instead of [cell setText:[NSString stringWithFormat:@"%d..., try

cell.textLabel.text =[NSString stringWithFormat:@"%d...

The error might be somewhere in the length of %d - %@ - %d - %d - %d - %d - %@ - %f - %f - %@ - %f - %d - %@ - %d causing an argument mismatch (NSInvalidArgumentException). Carefully walk through the list to find out the error. It's difficult to tell without seeing what are the data types of the individual elements.

于 2012-04-17T13:13:46.570 回答
0

不可能肯定地说出问题是什么,但几乎可以肯定的是,您的参数stringWithFormat:与其格式说明符之间存在不匹配。

检查所有对应的东西%d实际上是整数,而不是长整数或短整数。检查指定为 %@ 的东西是否真的是对象指针。此外,如果您已经覆盖-description了此处使用的任何类,请确保您没有在那里犯错。

实际错误是由发送-isEqualToString:到 an引起的,NSIndexSet因此您可能会NSIndexSet在某处意外地将 an 视为字符串。

于 2012-04-17T14:51:05.853 回答