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:

当对象收到它无法识别的消息时,您看到的错误就会出现。我不知道 aCTView是什么,但你应该确保:

  1. CTView 类确实有一个名为的方法setAttrString:
  2. self.view 引用的对象实际上是CTView.

您可以通过以下方式验证后者:

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

...或者只是在运行时在调试器中查看它。

于 2013-06-04T20:01:55.130 回答
0

看起来 CTView 对 setAttString 的响应,但您的 self.view 是 UIView 而不是 CTView。而且通常 viewController 的 self.view 只是一个 UIView。

如果您在 IB 中将视图创建为插座,请确保将其设置为 CTView 类。

或者分享您在最后一行代码中分配“self.view”的位置。

于 2013-06-04T19:57:02.797 回答