首页 > 代码库 > libgdx与Robovm绑定的一些方法
libgdx与Robovm绑定的一些方法
1.在IOS中绑定类
@interface ClassName : ExtendedClassName<ImplementedInterfaceName>那么在java中就应该是:
@NativeClass public class GADBannerView extends UIView { }
这里一般形式是:
@NativeClass public class GADBannerView extends NSObject { }
2.在IOS中绑定方法
- (void)loadRequest:(GADRequest *)request;
在java中
@Method(selector = "loadRequest:")//必须和IOS里面的方法名一样 不然无法找到 public native void loadRequest(GADRequest request);//这里方法名可以任意写 但是参数必须一样如果有多个参数的方法呢?
- (void)setLocationWithLatitude:(CGFloat)latitude longitude:(CGFloat)longitude accuracy:(CGFloat)accuracyInMeters;
在java写法是这样的:
@Method(selector = "setLocationWithLatitude:longitude:accuracy:") public native void setLocation(float latitude, float longitude, float accuracyInMeters);
3.在IOS中绑定构造方法
- (id)initWithAdSize:(GADAdSize)size;那么在java中实现:
@Method(selector = "initWithAdSize:") private native @Pointer long init(GADAdSize size);//构造方法需要值,因为GADAdSize实际上是long类型这里的方法写成私有的,因为不是任何人都可以调用的,所以还得写个java里的构造方法
public GADBannerView(GADAdSize size) { super((SkipInit)null); initObject(init(size)); }必须这样写,不然会被java调用两次
4.在IOS中绑定成员变量
在IOS中有很多很简便的写法,可以让开发者少些很多代码
@property(nonatomic, copy) NSString *adUnitID;property这个意思是OC会自动实现getter和setter 不用手动实现,那么我们知道他的意思后就很好绑定了,和绑定方法一样一样的
@Property(selector = "adUnitID") public native String getAdUnitID (); @Property(selector = "setAdUnitID:") public native void setAdUnitID (String id);注意:并不是所有属性都有getter和setter的 有些只有getter比如:
@property(nonatomic, readonly) BOOL hasAutoRefreshed;还有一种写法在绑定的时候必须强引用,不然程序会报错:
@property(nonatomic, assign) NSObject<GADBannerViewDelegate> *delegate在绑定的时候必须这样写:
@Property(selector = "delegate") public native GADBannerViewDelegate getDelegate(); @Property(selector = "setDelegate:", strongRef = true) public native void setDelegate(GADBannerViewDelegate delegate);
5.在IOS中绑定枚举类型
typedef NS_ENUM(NSInteger, GADGender) { kGADGenderUnknown, ///< Unknown gender. kGADGenderMale, ///< Male gender. kGADGenderFemale ///< Female gender. };在java中这样写:
typedef enum { kGADGenderUnknown, ///< Unknown gender. kGADGenderMale, ///< Male gender. kGADGenderFemale ///< Female gender. } GADGender;
以上写法精简自:https://github.com/BlueRiverInteractive/robovm-ios-bindings
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。