我已经开始在iOS 5中使用(ARC)了,但是我经常遇到一个问题。
第一种情况:
[[cell viewWithTag:999] setTextColor:[UIColor blackColor]];
此行导致问题:
实例消息的接收者类型'UIView'未声明具有选择器'setTextColor:'的方法。
第二种情况:
[delegate setForTheFirstTime:TRUE];
此行导致问题:
没有已知的选择器'setForTheFirstTime:'的实例方法。
当我使用委托时,我遇到很多这样的问题。
要解决这两个问题,我必须使用像performSelector:
这样的方法吗?
答案 0 :(得分:2)
您只需要将'delegate'声明为正确的类型,这将要求您导入该类型的标头。编译器需要知道您的委托对象理解'setForTheFirstTime:'并且编译器需要该方法的声明。
在使用viewWithTag:的第一种情况下,您需要将结果转换为正确的类,以便编译器可以知道'setTextColor:'方法。
假设这个视图是UILabel:
[(UILabel*)[cell viewWithTag:999] setTextColor:[UIColor blackColor]];
答案 1 :(得分:0)
viewWithTag方法返回一个UIView对象。因此,当您调用setTextColor方法时,接收器是UIView,并且UIView没有setTextColor方法。您必须将对象转换为正确的类。在这里你想要一个UILabel。