2013-06-04 25 views
0

我已经通过类似的问题在这里,但似乎无法将其与我的应用程序! 我的问题是,当我运行程序我得到错误信息Unrecongized Selector发送到实例

[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]; 

Im相当肯定与它最后一行,但是由于这条线已经从示例应用程序中解脱出来,所以我没有真正理解它的功能,因此看不出有什么问题!我可以尝试解决任何明显或常见的错误?我不知道我的代码有多少需要聪明的人来帮助我 - 让我知道,我可以添加更多的片段! 在此先感谢!

+0

你确定'self.view'是'CTView'类型吗? –

+0

NSLog self.view。这是一个UIView,而不是CTView。 –

回答

0

就人而言,该代码段将从应用程序资源文件中加载字符串,然后通过setAttrString:消息将其发送到self.view引用的对象。

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

  1. 的CTView类已经有一个名为setAttrString:
  2. 方法,通过self.view引用的对象实际上是CTView一个实例。

您可以验证后者有以下:

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

...或只是看它在调试程序在运行时。

+0

我在哪里可以在调试器中找到这些信息? – Giovanni

+0

深入到自己的超类中,直到找到名为_view的东西,或者打一个断点并在提示符中键入'po self.view' –

+0

啊 - 它是你建议一个UIView!考虑你的答案接受的答案...虽然如果你能帮助更多的事情,我会很感激!如果我要保持IB的布局不变,那么你会如何建议引用CTView(这是主视图的子视图,可能是为什么自我是UIView,因为它指的是自身而不是它的子视图)我无法获得我的脑袋围绕着如何将文本从阅读文件传递到这个子视图中! – Giovanni

0

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

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

或分享您在最后一行代码中分配了哪些内容“self.view”。

+0

好的,我理解你的推理 - 我可以在IB中添加更多关于布局的信息,这样你就可以更多地了解即时通讯尝试实现的内容。我想滚动coretext,所以想要一个uiview加载文本,作为uiscrollview的子视图。在界面生成器中,我有一个ViewController,ScrollView完全覆盖了iphone。在scrollview里面我有一个uiview(acutally它是一个自定义的uiview类,它叫做CTView),我想加载coretext(目前它只是一个文本文件的内容,以确保其正确工作。) – Giovanni

+0

可能我的问题在于分配不正确的代理/插座吗?我仍然只是xcode的业余爱好者,所以这些可能是不正确的!!! – Giovanni

+0

看起来像你的self.view这里不是CTView,而是UIView。检查插座连接是第一件事 – John

相关问题