所以我试图从应用程序项目中获取大部分代码并将其放在库项目(dll)中以供重用。我已经从主应用程序项目移动了我的AppDelegate.cs类并将其放在库项目中。然后我在AppDelegate类上更新了我的Register属性以反映移动。
namespace DLLNamespace
{
[Register ("DLLNamespace.AppDelegate")]
public partial class AppDelegate : UIApplicationDelegate
{
...
}
}
然后在Main.cs文件中的app项目中,我已更改为以下
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类中的代码,但在实际设备上进行炸弹。
答案 0 :(得分:0)
我认为将AppDelegate
放在类库中并不是一个好的设计,因为它既适用于iOS,也适用于UI。您可以将AppDelegate
中的大部分代码移动到更通用的通用类吗?
我尽量保持AppDelegate
小,如果应用代表相同,有时甚至会“链接”文件。我会为同一个应用程序的“免费”和“专业版”执行此操作。