-1

私は非常に単純なクラス (以下を参照) を持っていますが、実行するたびに次のように返されます。

キャッチされない例外 'NSUnknownKeyException' が原因でアプリを終了しています。理由: '[ setValue:forUndefinedKey:]: このクラスは、キー フィールド 1 のキー値コーディングに準拠していません。

次の方法で、この nib ファイルを画面に描画しています。

UIViewController *backViewController = [[UIViewController alloc] initWithNibName:@"myViewBack" bundle:[NSBundle mainBundle]];

UIView *backView = backViewController.view;

[self addSubview:backView];

以下は、ファイルの所有者に設定されているクラスのコードです。

.h

#import <Foundation/Foundation.h>


@interface myViewBack : NSObject {

    IBOutlet UITextField *field1;
    IBOutlet UITextField *field2;

    IBOutlet UIView *view;
}

@property (nonatomic, retain) IBOutlet UITextField *field1;
@property (nonatomic, retain) IBOutlet UITextField *field2;

@end

.m

#import "myViewBack"


@implementation myViewBack

@synthesize field1;
@synthesize field2;


- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];

    return YES;
}

@end
4

1 に答える 1

0

「ユーザー名」というフィールドを含むオブジェクトはどれですか? 実際にはあなたが思っているタイプではないオブジェクトを使用している可能性があります。インスタンス変数としてそれを持たないオブジェクトの「username」というフィールドにアクセスしようとすると、クラッシュします。

デバッグで実行してみてください (Command-Y)。アプリがクラッシュすると、クラッシュした行で停止するはずです。この時点で、デバッガー ウィンドウを表示し (Ctrl-Command-Y)、[スレッド] ビュー (デバッガーの左上隅) で黒 (グレーではなく) になっている最後の行を探します。これは、存在しないものにアクセスする前のコード最後の行です。その行をクリックすると、問題の原因となったオブジェクトが表示されます。

あなたが提供したコードのどれも「ユーザー名」をインスタンス変数として指定していないため、別の場所にある必要があります。

于 2009-09-26T05:37:02.757 に答える