0

2番目のテーブルビューで常にエラーが発生しました。ストーリーボードを使用して簡単なアプリを作成しています。アプリを初めて実行すると、作成したデータのリストが表示されます。ユーザーが行をクリックすると、他のページに変更したいのですが、他のページにはテーブルビューもあります。データのリストもハードコーディングしましたが、表示できませんでした。

私はいつもこの部分でエラーが発生しました

-(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 = [ListDetailSubSite objectAtIndex:indexPath.row];、セル内で ListDetailSubSite オブジェクトではなく文字列が必要であることが原因である可能性があります..

このリンクで同様のエラーが解決されました:

この Cocoa コードで isEqualToString エラーが発生するのはなぜですか?

サブサイトクラスを作成したと述べたので、そのメソッドを試すことができます..基本的に、入力cell.textLabel.textが NSString オブジェクトであることを確認する必要があります..

于 2012-10-29T07:44:34.547 に答える
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 に答える
0
cell.textLabel.text = [ListDetailSubSite objectAtIndex:indexPath.row]

に置き換える必要があります

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