无法将“对象”表达式转换为类型“MonoTouch.Foundation.NSObject”

Posted

技术标签:

【中文标题】无法将“对象”表达式转换为类型“MonoTouch.Foundation.NSObject”【英文标题】:Cannot convert `object' expression to type `MonoTouch.Foundation.NSObject' 【发布时间】:2011-08-06 16:25:27 【问题描述】:

我开始了一个新的 MonoTouch 项目。我打开 Interface Builder 并创建了一个按钮和插座。我将按钮连接到插座。我保存了 XIB,然后回到 MonoDevelop 并尝试构建项目。我在生成的 XIB Designer 文件中遇到错误。错误是:

错误 CS1502:“MonoTouch.Foundation.NSObject.SetNativeField(string, MonoTouch.Foundation.NSObject)”的最佳重载方法匹配有一些无效参数 (CS1502) (Test2) 错误 CS1503:参数“#2”无法将“object”表达式转换为“MonoTouch.Foundation.NSObject”类型(CS1503)(Test2)

这是创建的属性:

#pragma warning disable 0169
    [MonoTouch.Foundation.Connect("window")]
    private object window 
        get 
            this.__mt_window = ((object)(this.GetNativeField("window")));
            return this.__mt_window;
        
        set 
            this.__mt_window = value;
            this.SetNativeField("window", value);
        
    

有什么想法吗?

【问题讨论】:

你能发布你的 XIB 布局截图吗? 如果我创建一个新项目,构建,它可以工作。如果我打开 XIB(在 Interface Builder 中),不要更改任何内容并单击保存,然后构建,它会失败。我的 XIB 除了默认窗口之外什么都没有。 您使用的是最新的软件版本吗? 就是这样。您可以将此作为答案发布吗?我会给您信用吗? 【参考方案1】:

确保您使用的是工具的最新(和匹配)版本。 例如,MonoTouch installation page 列出了最新版本的以下要求:

XCode 3.2.6 and ios 4.3 SDK Mono framework Mac OS X 的 2.10.3 - 英特尔运行时 MonoDevelop IDE2.4.2或以上

【讨论】:

以上是关于无法将“对象”表达式转换为类型“MonoTouch.Foundation.NSObject”的主要内容,如果未能解决你的问题,请参考以下文章

使用 Monotouch 时如何将 CGColor 转换为 NSObject?

无法将“NSManagedObject”类型的返回表达式转换为“字符串”类型?

无法将 lambda 表达式转换为“字符串”类型,因为它不是委托类型 [重复]

无法将“MopubBannerAdView”类型的返回表达式转换为“UIViewController”类型的返回表达式?

无法将 lambda 表达式 转换为类型“System.Delegate”,因为它不是委托类型

具有 UNNotificationRequest 的计算属性返回无法将类型“Void”的返回表达式转换为返回类型“[UNNotificationRequest]”