1

obj-cに慣れるために、単純なテーブルビュー>詳細アプリをコーディングしようとしています。セルをクリックするよりも、辞書を使用してテーブルにデータを入力します。空白の詳細ビューが表示されます。この作品(私はそれを誇らしげに言います)。詳細ビューに情報を送信しようとすると、事態は最悪になります。取得するデバッグエラーは次のとおりです。

2012-07-12 14:32:41.906 StoryboardTutorial [79624:f803]-[UIView setText:]:認識されないセレクターがインスタンス0x6eae8d0に送信されました

2012-07-12 14:32:41.908 StoryboardTutorial [79624:f803]キャッチされなかった例外'NSInvalidArgumentException'が原因でアプリを終了しています、理由:'-[UIView setText:]:認識されないセレクターがインスタンス0x6eae8d0に送信されました' *

* *まずスローコールスタック:例外(lldbを)投げる(0x13ca022 0x155bcd6 0x13cbcbd 0x1330ed0 0x1330cb2 0x2d41 0xdba1e 0xdbd11 0xed8fd 0xedaef 0xeddbb 0xee85f 0xeee06 0xc8a852d 0xeea24 0x27bd 0xa55c5 0xa57fa 0x93a85d 0x139e936 0x139e3d7 0x1301790 0x1300d84 0x1300c9b 0x12b37d8 0x12b388a 0x14626 0x1c4d 0x1bb5は0x1)と呼ばれるTERMINATE

そしてここにいくつかのコードのチャンクがあります:

DetailViewController.h

//  DetailViewController.h

#import <UIKit/UIKit.h>

@interface DetailViewController : UIViewController{
    NSString *city;
    NSString *state;
    IBOutlet UILabel *cityLabel;
    IBOutlet UILabel *stateLabel;
}

@property (nonatomic,retain) NSString *city,*state;
@property (retain,nonatomic) IBOutlet UILabel *cityLabel,*stateLabel;


@end

DetailViewcontroller.m

//  DetailViewController.m

#import "DetailViewController.h"

@implementation DetailViewController
@synthesize city,state,cityLabel,stateLabel;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    stateLabel.text = state;
    cityLabel.text = city;

}

ViewController.m

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];
    detail.city = [dataSource objectAtIndex:indexPath.row];
    detail.state = [states objectForKey:detail.city];
    [self.navigationController pushViewController:detail animated:YES];
    UITableViewCell *cell;
    cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.textLabel.shadowColor = [UIColor clearColor];
}


- (void)setupArray{
    states = [[NSMutableDictionary alloc] init];
    [states setObject:@"Roma" forKey:@"Lazio"];
    [states setObject:@"Milano" forKey:@"Lombardia"];

    dataSource = [states allKeys];
}
4

1 に答える 1

1

UIViewメソッドがありませんsetTextUIViewあなたが話しているのは、メソッドを持つためにプロパティを持っている必要がありtextますsetText

エラーは、これらの行の1つで発生する可能性があります

stateLabel.text = state;
cityLabel.text = city;

これらの1つは、あなたが思っているタイプのオブジェクトであってはなりません(別名、のUIView代わりにUILabel)。他の場所に電話をかけている場合をsetText除きます。

に変更してみてください

if ([stateLabel isKindOfClass:[UILabel class]]) stateLabel.text = state;      
if ([cityLabel isKindOfClass:[UILabel class]]) cityLabel.text = city;
于 2012-07-12T12:44:52.050 に答える