1

因此,我试图从应用程序项目中获取大部分代码并将其放入库项目 (dll) 中以供重用。我已将我的 AppDelegate.cs 类从主应用程序项目中移出并将其放置在库项目中。然后,我更新了 AppDelegate 类上的 Register 属性以反映这一举动。

namespace DLLNamespace
{
    [Register ("DLLNamespace.AppDelegate")]
    public partial class AppDelegate : UIApplicationDelegate
    {
        ...
    }
}

然后在我的 Main.cs 文件中的应用程序项目中,我已更改为以下内容

public class Application
{
    static void Main(string[] args)
    {
        UIApplication.Main(args, null, "DLLNamespace.AppDelegate");
    }
}

所有这些在 iOS 模拟器中都很好用,但是当我在 iPhone 5 上调试时,我在 Main 上收到以下错误

Objective-C exception thrown. Name: NSInternalInconsitencyException Reason: Unable to            instantiate the UIApplication delegate instance. No class named DLLNamespace.AppDelegate is loaded.

同样,它在 iOS 模拟器中运行良好,我可以单步执行库项目中 AppDelegate 类中的代码,但会在实际设备上运行。

4

1 回答 1

0

AppDelegate我认为将一个放在类库中并不是一个好的设计,因为它是 iOS 和 UI 特定的。你能把你的大部分代码AppDelegate移到一个更通用的通用类吗?

我尽量保持AppDelegate小,如果应用程序委托相同,有时我什至会“链接”文件。我会为同一应用程序的“免费”和“专业”版本执行此操作。

于 2013-01-30T13:42:29.893 回答