0

私はここで同様の質問をしましたが、それを私のアプリに関連付けることはできません! 私の問題は、プログラムを実行するとエラーメッセージが表示されることです

[UIView setAttString:]: unrecognised selector sent to instance 0x7538c60

ViewController クラスの 3 行までコードをデバッグしました。これらは次のとおりです。

        NSString *path = [[NSBundle mainBundle] pathForResource:@"g1" ofType:@"txt"];
        NSAttributedString* text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];
        [(CTView*)self.view setAttString: text];

最後の行で間違いないと確信していますが、この行はサンプルアプリから削除されたものなので、それが何をするのかを正しく理解していないため、何か問題があることはわかりません! 私が解決しようとする明らかなまたは一般的なエラーはありますか? 私を助けるためにそこにいる賢い人々に私のコードがどれだけ必要なのかわかりません-私に知らせてください、私はより多くのスニペットを追加することができます! 前もって感謝します!

4

2 に答える 2

0

人間の言葉で言うと、このスニペットはアプリのリソース ファイルから文字列を読み込み、それをメッセージself.viewによって参照されるオブジェクトに送信しsetAttrString:ます。

表示されているエラーは、オブジェクトが認識できないメッセージを受信したときに表示されます。a が何であるかはわかりませんが、次のCTViewことを確認する必要があります。

  1. CTView クラスには実際に呼び出されるメソッドがあります。setAttrString:
  2. self.view によって参照されるオブジェクトは、実際には のインスタンスですCTView

後者は次の方法で確認できます。

BOOL isCorrectClass = [self.view isMemberOfClass:[CTView class]];

...または、実行時にデバッガーで見てください。

于 2013-06-04T20:01:55.130 に答える
0

setAttString に対する CTView の応答のように見えますが、self.view は CTView ではなく UIView です。通常、viewController の self.view は単なる UIView です。

ビューを IB のアウトレットとして作成した場合は、必ず CTView クラスに設定してください。

または、コードの最後の行で「self.view」を開始した場所を共有します。

于 2013-06-04T19:57:02.797 に答える