3

Xcode 4.3.3 でスタンフォード CS193p コースを学習しています。以下のスクリーンショットを見れば一目瞭然だと思います。しかし、とにかく言葉で問題を説明します。

UILabel をストーリーボードから対応する実装ファイルにコントロールドラッグして、IBOutlet @property を作成します。次に、エディターの左側にある行番号を示す黒丸をクリックすると、2 つの接続が表示されます。削除方法がわかりません。

さらに、UIlabel のストーリーボードの接続インスペクターには 1 つの接続しか表示されません。

さらに奇妙なことに、パブリックプロパティのセッター内に UILabel のテキストを設定しようとすると、ラベルのテキストの更新に失敗します。

 -(void) setQuestion:(NSString *)question
 {
     _question = question;
     self.questionLabel.text = question;
     NSLog(@"The quesion is %@",question);
     NSLog(@"The quesion label text is %@",self.questionLabel.text);
 }

2 つの NSLog を使用してデバッグし、以下を取得します。それは NSString *question が @"What do you want your label to say?" であることを示していますが、self.questionLabel.text は null です。値の割り当ては失敗します。これは、上記の重複した接続に関連していると思われます。

2012-07-29 04:03:53.817 キッチン シンク[18628:f803] 質問は、レーベルに何を伝えたいですか?
2012-07-29 04:03:53.820 キッチン シンク[18628:f803] 質問ラベルのテキストは (null)

以下は、重複した接続を示すスクリーンショットです。明らかな何かが欠けている可能性があります。助けてください。

ここに画像の説明を入力

4

1 に答える 1

0

私はこれをXcodeストーリーボードの奇抜さまでストーカーします。

まず、プロジェクトのクリーンアップと再ビルドを試してください。

それでも問題が解決しない場合は、次の手順を実行して、AskerViewControllerビューからAskerViewController実装(.m)ファイルにドラッグせずに@propertyを手動で定義します。

AskerViewControllerの実装(.m)ファイルのインターフェイスセクションで、そのIBOutlet@property行を切り取ります。ストーリーボードのラベルをクリックします。そのラベルをAskerViewControllerにバインドしているものをすべて切断します。プロジェクトをクリーンアップします。次に、プロパティに貼り付けて、ラベルからストーリーボードファイルのAskerViewControllerビューの下部にあるViewControllerオーブにcontrolキーを押しながらドラッグします。

于 2012-07-29T03:27:17.197 に答える