【发布时间】:2017-10-25 08:50:58
【问题描述】:
当尝试在 Xcode 8.3.2 上构建时,我收到以下错误:
[(GPUImageSmoothToonFilter *)filter setBlurSize:filterSettingsSlider.value];
错误:“GPUImageSmoothToonFilter”没有可见的@interface 声明选择器“setBlurSize”
我该如何解决?
另一个问题(类似于上面的问题)是这样的:
tempImage = [lookupFilter imageFromCurrentlyProcessedOutput];
错误:“GPUImagelookupFilter”没有可见的@interface 声明选择器“imageFromCurrentlyProcessedOutput”
我该如何解决这个问题?
谢谢!
【问题讨论】:
-
您将需要提供更多代码来显示这些对象是如何实例化的。对于初学者。 GPUImageSmoothToonFilter.h 没有声明方法
setBlurSize。它似乎不是您认为的对象类型。 -
杰克,也许这就是问题所在,setBlurSize 没有声明?我在 .h 或 .m 的任何地方都看不到它。它仅在该代码实例中显示。还提供了截图。
-
这就是“No visible @interface for '...' 声明选择器 '...' 的意思。.h 不包含您尝试使用的方法。有时它在.m,这意味着它只能在.m内部使用,但它是一个私有方法,所以你不能在外部使用它。如果你使用的是子类,你可以访问父类的公共方法,即使它们是'没有在 .h 中明确声明。但是,在这种情况下,setBlurSize 不是您正在使用的类的方法。也许您正在使用的类上有一个具有该方法的属性?您在哪里找到的那个方法?
-
@JakeT。很奇怪,其他情况下的 setBlurSize 不会抛出这个错误。它们都在同一个 .m 文件中。仅在这种情况下:caseGPUIMAGE_GAUSSIAN: {} 发生。如果 GPUIMAGE_ZOOMBLUR:{} 不抛出该错误,即使使用了同一行代码。