![]() |
1
0
因为编译器认为类已经声明它们实现了
通常的原因是在一个超类中声明协议的采用,然后忘记在随后的子类的这个超类中实现。 如果您确定情况并非如此,那么您可能只需要清理项目并重新构建。您很可能是在某一点上声明的,然后是未声明的,但编译器仍然停留在旧的声明上。
如果清洁不能解决,我会做一个项目
|
![]() |
2
4
这里的原因是您的项目中有多个接口具有定义为initwitdelegate:(id)的函数。 alloc只返回id,因此编译器不知道类型,因此它不知道正在使用哪个initwitdelegate,并且似乎使用了列表中的第一个initwitdelegate。所以你会得到一个毫无意义的警告。 但是,运行时知道对象的类型,因此没有任何问题。 解决方案似乎是使用更详细的init方法,例如initWithWebServiceDelegate。或在分配后强制转换:
|
|
Selam S · 重命名Clojure的特殊形式 7 年前 |
![]() |
Trav Easton · 过滤器命名约定 7 年前 |
![]() |
radbyx Matt · 样式和事件的CSS类的命名约定是什么? 7 年前 |