0

我在第二个表视图时总是出错。我使用情节提要创建了一个简单的应用程序。我的应用程序第一次运行时,它会显示我创建的数据列表。如果用户单击该行,我想更改为另一个页面,在另一个页面上也有一个 tableview。我还硬编码了数据列表,但我没有显示出来。

我总是在这部分出错

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SubSiteCellDetail"];
    cell.textLabel.text = [ListDetailSubSite objectAtIndex:indexPath.row]; //this always give me the error
    return cell;
}

这是我创建数据列表的方式

ListDetailSubSite = [NSMutableArray arrayWithCapacity:10];
SubSite *detailSubSite = [[SubSite alloc] init];
detailSubSite.sSubSiteName = [subsite.sSubSiteName stringByAppendingString:@"1"];
[ListDetailSubSite addObject:detailSubSite];


detailSubSite = [[SubSite alloc] init];
detailSubSite.sSubSiteName = [subsite.sSubSiteName stringByAppendingString:@"2"];
[ListDetailSubSite addObject:detailSubSite];

这是我从 UITableView 移动到另一个 UITableView 的方式。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"ShowSubSiteDetail"]) {
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        SubSite *subsetSelected = [ListSubSite objectAtIndex:indexPath.row];
        [[segue destinationViewController] setSubsite:subsetSelected];
    }
}

这是我的错误

2012-10-29 15:18:11.127 UniversalStoryBoard[5256:f803] -[SubSite isEqualToString:]: unrecognized selector sent to instance 0x9355340
2012-10-29 15:18:11.129 UniversalStoryBoard[5256:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SubSite isEqualToString:]: unrecognized selector sent to instance 0x9355340'
*** First throw call stack:
(0x13ce022 0x155fcd6 0x13cfcbd 0x1334ed0 0x1334cb2 0x1580ff 0x4fb1 0xb2c54 0xb33ce 0x9ecbd 0xad6f1 0x56d21 0x13cfe42 0x1d86679 0x1d90579 0x1d154f7 0x1d173f6 0x1d16ad0 0x13a299e 0x1339640 0x13054c6 0x1304d84 0x1304c9b 0x12b77d8 0x12b788a 0x18626 0x1fcd 0x1f35)
terminate called throwing an exception

这是图片:

图片

类 SubSite.h

#import <UIKit/UIKit.h>

@interface SubSite : NSObject
@property (nonatomic, copy) NSString *sSubSiteName;

@end

类 SubSite.m

#import "SubSite.h"

@implementation SubSite
@synthesize sSubSiteName;

@end

谁能帮我解决这个问题?谢谢。

4

3 回答 3

1

你发现的错误是什么?你试试这个

cell.textLabel.text = [NSString stringWithFormat @"%@",[ListDetailSubSite objectAtIndex:indexPath.row]];

我认为问题是因为cell.textlable.text接受NSString所以你需要转换你的对象

你可以这样做

Subset *tmp = [ListDetailSubSite objectAtIndex:indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"%@",tmp.sSubSetName];
于 2012-10-29T07:18:57.683 回答
1

问题可能是因为在cell.textLabel.text = [ListDetailSubSite objectAtIndex:indexPath.row];单元格中需要一个字符串而不是 ListDetailSubSite 对象。

此链接中解决了类似的错误:

为什么我在此 Cocoa 代码中收到 isEqualToString 错误?

既然您提到您已经创建了一个 Subsite 类,您可以尝试该方法.. 基本上您需要确保输入cell.textLabel.text是一个 NSString 对象..

于 2012-10-29T07:44:34.547 回答
0
cell.textLabel.text = [ListDetailSubSite objectAtIndex:indexPath.row]

应该替换为

cell.textLabel.text = [[ListDetailSubSite objectAtIndex:indexPath.row] sSubSiteName] 
于 2012-10-29T07:30:43.147 回答