Xamarin演练绑定iOS ObjC库w NSInvalidArgumentException错误

时间:2017-05-18 14:23:28

标签: xamarin xamarin.ios

我已经按照演练来链接来自their site的Xamarin中的ObjC库。

我正在将#34;无法识别的选择器发送到实例"关闭colorpicker视图时出错。

在关闭InfColorPicker视图时,我发现了一些拼写错误和一些小修复,以使示例应用程序运行时出现错误。

我必须做的一个小修改是在Objective Sharper生成的StructsAndEnums.cs文件中将CGImageRef *更改为CGImage。

    [DllImport ("__Internal")]
    static extern unsafe CGImageRef* createSaturationBrightnessSquareContentImageWithHue (float hue);

    [DllImport ("__Internal")]
    static extern unsafe CGImageRef* createHSVBarContentImage (InfComponentIndex barComponentIndex, float[] hsv);

    [DllImport ("__Internal")]
    static extern unsafe CGImage createSaturationBrightnessSquareContentImageWithHue (float hue);

    [DllImport ("__Internal")]
    static extern unsafe CGImage createHSVBarContentImage (InfComponentIndex barComponentIndex, float[] hsv);

在我找到关于为Swift框架执行此操作的文档后,我尝试在XCode库中禁用BitCode生成。我仍然得到同样的错误。

点击完成以关闭视图后出现错误: NSInvalidArgumentException

My source这个项目。 我可以添加一个包含禁用BitCode生成的分支,如果它有用的话。

1 个答案:

答案 0 :(得分:0)

我正在使用从Objective Sharpie输出生成的Weak Delegate。我已经将ViewController切换为使用WeakDelegate而不是Subclassed强委托。我需要在ViewController中处理colorPickerControllerDidFinish消息。

将以下函数添加到ViewController中修复了当用户点击“完成”时我得到的错误。

    [Export("colorPickerControllerDidFinish:")]
    public void ColorPickerControllerDidFinish(InfColorPickerController controller)
    {
        View.BackgroundColor = controller.ResultColor;
        DismissViewController(false, null);

    }