在同一个头文件中,您有一个NIRecyclableView
继承自UIView
并实现NIRecyclableView
协议的类,因此您可能希望返回该对象
@interface NIRecyclableView : UIView <NIRecyclableView>
// Designated initializer.
- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier;
@property (nonatomic, readwrite, copy) NSString* reuseIdentifier;
@end
所以该标头的绑定看起来像这样
[BaseType (typeof (NSObject))]
interface NIViewRecycler {
[Export ("dequeueReusableViewWithIdentifier:")]
NIRecyclableView DequeueReusableView (string reuseIdentifier);
[Export ("recycleView:")]
void RecycleView (NIRecyclableView view);
[Export ("removeAllViews")]
void RemoveAllViews ();
}
[Model]
[Protocol]
[BaseType (typeof (NSObject), Name = "NIRecyclableView")]
interface NIRecyclableViewProtocol {
[Export ("reuseIdentifier", ArgumentSemantic.Copy)]
string ReuseIdentifier { get; set; }
[Export ("prepareForReuse")]
void PrepareForReuse ();
}
// Here you would do interface NIRecyclableView : NIRecyclableViewProtocol
// But NIRecyclableView already implements reuseIdentifier
// So you just inline the missing method PrepareForReuse
// and you get the same results
[BaseType (typeof (UIView))]
interface NIRecyclableView {
[Export ("initWithReuseIdentifier:")]
IntPtr Contructor (string reuseIdentifier);
[Export ("reuseIdentifier", ArgumentSemantic.Copy)]
string ReuseIdentifier { get; set; }
[Export ("prepareForReuse")]
void PrepareForReuse ();
}
一个协议就像嘿,如果你愿意,这个对象也可以响应这个objective-c消息,所以你可以像我们上面所做的那样在接口定义中手动内联它们,或者NIRecyclableView : NIRecyclableViewProtocol
在这种情况下我们不必这样做。
希望这可以帮助
亚历克斯