0

私はこのエラーでスタックしています宣言されていない識別子の使用は一般的なエラーを変え、時には非常に簡単に修正できますが、とにかくスタックです、おそらく私は間違った方法で見ています。

私は人々が欲しいものを書いてplistに保存できるログブックを作ろうとしています。

保存されたすべてのファイルを表示するtableViewから、人がフィールドに入力できるxibビューにプッシュします。新しいものの.hと、キーを定義する.hからすでに.hをインポートしました。

ここでエラーが発生しています。

- (void) viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    name.text = [bookLog objectForKey:NAME_KEY];
    placeTextView.text = [bookLog objectForKey:PLACE_KEY];
    file1TextView.text = [bookLog objectForKey:FILE1_KEY];
    file2TextView.text = [bookLog objectForKey:FILE2_KEY];
 }

各行のbookLog1に4つのエラー、name.text、placeTextView.text、file1TextView.text、fileTextView.textに1つのエラー。

何か案が?

ありがとう

4

2 に答える 2

1

あなたが話しているプロパティを合成しなかったためだと思います.m@synthesize data1;エラーが発生しているすべてのプロパティをいつ合成する必要があるかを示しているだけです。(@synthesize placeTextView; @synthesize...また、.m で宣言する必要があるときに、.h ファイルで宣言を行いました。

于 2012-08-16T06:44:26.683 に答える
0

diveLogTable.mで参照するプロパティは、diveLogTableクラスのメンバーではないため、そこで言及すると、コンパイラーはそれらを未定義と見なします。それらはdiveLogDetailsクラスで公開されているため、そこでアクセスできます(または、そのクラスのインスタンスにそれらを要求することによって)。

コンパイルされていないコードは、diveLogDetailsクラスに移動できます。これは、そのビューコントローラのビューが表示されるときに実行したいことです(UIControlを設定します)。そこでコンパイルされ、そこでは理にかなっているようです。

diveLogディクショナリにいくつかのdiveLog情報が保持されているように見えます。そのデータをユーザーに提示し、diveLogDetailsクラスを介して編集できるようにします(大文字と名前ビューコントローラーでクラス名を開始するのが一般的です)。その接尾辞を付けて、次のようにします:DiveLogDetailsViewController)。

diveLogDetailsクラスのdiveLogディクショナリは、パブリックにする必要がある唯一のプロパティです。diveLogDetails VCを作成するときは、辞書をそのまま設定します。

diveLogDetailsにディクショナリから値を読み取らせ、UIControlsを設定し、ユーザーがコントロールの値を変更したときにディクショナリの値を変更します(そして[保存]をタップするなど)。diveLogTableに戻ると、最新の値がディクショナリに保存されます。

于 2012-08-17T04:57:59.127 に答える