Xamarin绑定类别返回错误:无法在静态类中声明实例成员 [英] Xamarin binding Category return error: cannot declare instance members in a static class

查看:66
本文介绍了Xamarin绑定类别返回错误:无法在静态类中声明实例成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试将 ReFrostedViewController 绑定到c#.我使用Objective Sharpie生成界面.但是,当我使用Xamarin对其进行编译时,它会返回错误.

I'm try to binding ReFrostedViewController to c#. I used Objective Sharpie to generate interfaces. But When I use Xamarin to compile it, it return error.

 /REFrostedViewController_UIViewController.g.cs(10,10): Error CS0708: `REFrostedMenu.REFrostedViewController_UIViewController.__mt_FrostedViewController_var': cannot declare instance members in a static class (CS0708) (REFrostedBinding)

这是我的代码:

[Export ("frostedViewController", ArgumentSemantic.Retain)]
REFrostedViewController FrostedViewController { get; }

我将其更改如下:

[Export ("frostedViewController", ArgumentSemantic.Retain)]
REFrostedViewController FrostedViewController()

它可以编译,但是我不能从UIViewController中获取它.

it can compile but I can't get it form UIViewController.

REFrostedViewController reFrost = base.FrostedViewController();

返回错误:

/MainViewController.cs(43,43): Error CS0117: `MonoTouch.UIKit.UIViewController' does not contain a definition for `FrostedViewController' (CS0117) (iOS)

更新: 这是完整的代码

UPDATE: Here is full code

using System;
using System.Drawing;
using MonoTouch.ObjCRuntime;
using MonoTouch.Foundation;
using MonoTouch.UIKit;

namespace REFrostedMenu
{
[BaseType (typeof (UIViewController))]
public partial interface REFrostedContainerViewController {

    [Export ("screenshotImage", ArgumentSemantic.Retain)]
    UIImage ScreenshotImage { get; set; }

    [Export ("frostedViewController", ArgumentSemantic.Assign)]
    REFrostedViewController FrostedViewController { get; set; }

    [Export ("animateApperance")]
    bool AnimateApperance { get; set; }

    [Export ("containerView", ArgumentSemantic.Retain)]
    UIView ContainerView { get; }

    [Export ("panGestureRecognized:")]
    void PanGestureRecognized (UIPanGestureRecognizer recognizer);

    [Export ("hide")]
    void Hide ();

    [Export ("resizeToSize:")]
    void ResizeToSize (SizeF size);

//      [Export ("hideWithCompletionHandler:")]
//      void HideWithCompletionHandler(HideCompletionHandler handler);

    [Export ("refreshBackgroundImage")]
    void RefreshBackgroundImage ();
}

[BaseType (typeof (UIViewController))]
public partial interface REFrostedViewController {

    [Export ("panGestureRecognizer", ArgumentSemantic.Retain)]
    UIPanGestureRecognizer PanGestureRecognizer { get; }

    [Export ("panGestureEnabled")]
    bool PanGestureEnabled { get; set; }

//      [Export ("direction")]
//      REFrostedViewControllerDirection Direction { get; set; }

    [Export ("backgroundFadeAmount")]
    float BackgroundFadeAmount { get; set; }

    [Export ("blurTintColor", ArgumentSemantic.Retain)]
    UIColor BlurTintColor { get; set; }

    [Export ("blurRadius")]
    float BlurRadius { get; set; }

    [Export ("blurSaturationDeltaFactor")]
    float BlurSaturationDeltaFactor { get; set; }

    [Export ("animationDuration")]
    double AnimationDuration { get; set; }

    [Export ("limitMenuViewSize")]
    bool LimitMenuViewSize { get; set; }

    [Export ("menuViewSize", ArgumentSemantic.Assign)]
    SizeF MenuViewSize { get; set; }

    [Export ("liveBlur")]
    bool LiveBlur { get; set; }

//      [Export ("liveBlurBackgroundStyle")]
//      REFrostedViewControllerLiveBackgroundStyle LiveBlurBackgroundStyle { get;    set; }

//      [Export ("delegate", ArgumentSemantic.Assign)]
//      REFrostedViewControllerDelegate Delegate { get; set; }

    [Export ("contentViewController", ArgumentSemantic.Retain)]
    UIViewController ContentViewController { get; set; }

    [Export ("menuViewController", ArgumentSemantic.Retain)]
    UIViewController MenuViewController { get; set; }

    [Export ("initWithContentViewController:menuViewController:")]
    IntPtr Constructor (UIViewController contentViewController, UIViewController menuViewController);

    [Export ("presentMenuViewController")]
    void PresentMenuViewController ();

    [Export ("hideMenuViewController")]
    void HideMenuViewController ();

    [Export ("resizeMenuViewControllerToSize:")]
    void ResizeMenuViewControllerToSize (SizeF size);

//      [Export ("hideMenuViewControllerWithCompletionHandler:")]
//      void HideMenuViewControllerWithCompletionHandler (HideMenuViewControllerCompletionHandler handler);

    [Export ("panGestureRecognized:")]
    void PanGestureRecognized (UIPanGestureRecognizer recognizer);
}

[BaseType (typeof (NSObject))]
[Model]
public partial interface REFrostedViewControllerDelegate {

    [Export ("frostedViewController:willAnimateRotationToInterfaceOrientation:duration:")]
    void WillAnimateRotationToInterfaceOrientation (REFrostedViewController frostedViewController, UIInterfaceOrientation toInterfaceOrientation, double duration);

    [Export ("frostedViewController:didRecognizePanGesture:")]
    void DidRecognizePanGesture (REFrostedViewController frostedViewController, UIPanGestureRecognizer recognizer);

    [Export ("frostedViewController:willShowMenuViewController:")]
    void WillShowMenuViewController (REFrostedViewController frostedViewController, UIViewController menuViewController);

    [Export ("frostedViewController:didShowMenuViewController:")]
    void DidShowMenuViewController (REFrostedViewController frostedViewController, UIViewController menuViewController);

    [Export ("frostedViewController:willHideMenuViewController:")]
    void WillHideMenuViewController (REFrostedViewController frostedViewController, UIViewController menuViewController);

    [Export ("frostedViewController:didHideMenuViewController:")]
    void DidHideMenuViewController (REFrostedViewController frostedViewController, UIViewController menuViewController);
}

[BaseType (typeof (UIImage))]
[Category]
public partial interface REFrostedViewController_UIImage {

    [Export ("re_applyBlurWithRadius:tintColor:saturationDeltaFactor:maskImage:")]
    UIImage Re_applyBlurWithRadius (float blurRadius, UIColor tintColor, float saturationDeltaFactor, UIImage maskImage);

    [Export ("re_screenshot")]
    UIImage Re_screenshot ();
}

[BaseType (typeof (UIViewController))]
[Category]
public partial interface REFrostedViewController_UIViewController {

    [Export ("frostedViewController", ArgumentSemantic.Retain)]
    REFrostedViewController FrostedViewController();

    [Export ("re_displayController:frame:")]
    void Re_displayController (UIViewController controller, RectangleF frame);

    [Export ("re_hideController:")]
    void Re_hideController (UIViewController controller);
}
}

请帮助我,非常感谢!

Please help me, I'm very appreciate!

推荐答案

我在Github上创建了一个绑定项目和示例作为fork:

I created a binding project and sample as a fork on Github: https://github.com/therealjohn/REFrostedViewController

无法在静态类中声明实例成员"错误是由于

The "cannot declare instance members in a static class" error was because of

[Export ("frostedViewController", ArgumentSemantic.Retain)]
REFrostedViewController FrostedViewController { get; }

试图在类别中创建属性,这基本上是一种扩展方法.没有扩展" C#属性,因此您对方法的更改修复"了该错误.

Which was trying to create a Property in a Category, which is basically an extension method. There are not "extension" C# properties, so your change to a method "fixed" that error.

我不确定您还有什么其他问题,但是我所做的项目应该为您工作.

I am not sure what other issues you had, but the project I did should work for you.

享受!

这篇关于Xamarin绑定类别返回错误:无法在静态类中声明实例成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆