好日子,ObjectiveC中的Monotouch/C#相当于id <SomeType>?
我:
的ObjectiveC:
- (void)addTarget:(id<GPUImageInput>)newTarget;
C#:
[BaseType (typeof(NSObject))]
interface GPUImageOutput{
[Export ("addTarget")]
void AddTarget(NSObject newTarget); //Suspected source of the error
}
导致 “无法识别的选择发送到实例” 时调用
stillCamera.AddTarget (filter);
和
GPUImage.GPUImageOutput filter = new GPUImage.GPUImageSketchFilter();
而StillCamera的碱基类型是摄影机其具有碱基类型GPUImageOutput。
GPUImageSketchFilter是GPUImageSobelEdgeDetectionFilter其为GPUImageTwoPassFilter其为GPUImageFilter其为GPUImageOutput其为NSObject的,并在同一时间实现GPUImageInput。
任何想法?
谢谢!
工作就像一个魅力。但我仍然感到困惑。你能解释冒号吗? – Bagaboo
这就是标准ObjC中选择器的名称。一般的规则是:“foo”=没有参数的方法,“foo:”=带一个参数的方法,“foo:arg1:”=一个带有两个参数的方法等。 –
我明白了。谢谢。这解释了我有很多崩溃:) – Bagaboo