好日子,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