我一直在使用Monotouch并使用Debug构建整个项目。我最近更改了它以发布构建以运行它并且它在启动时崩溃了。打开调试符号我发现问题是SQLite抛出了一个(假的?)异常: "无法更新RealConfigData它没有PK!"
public class RealConfigData
{
[AutoIncrement, PrimaryKey]
public int Id { get; set; }
// .. Other fields
}
public class GameData
{
[AutoIncrement, PrimaryKey]
public int Id { get; set; }
public int Seed {get;set;}
// .. Other fields
}
当我尝试插入()数据库中RealConfigData没有PK的第一个时,我收到错误!但事实确实如此。
对于第二个,我得到"找不到方法'种子'"
WTF,似乎在编译RELEASE时,元数据不在那里,或者更准确地说,是不可靠的......似乎它发现第二类的PK很好,但无法和#39; t为第一个...然后它无法找到该领域的吸气剂......这太疯狂了。此代码在运行debug时运行正常。
这里的地球可能出错了什么?
我准备好发布我的iPhone应用程序,除了SQLite在最后一分钟打倒我。救命啊!
====这是一个错误陈述:
更新: 我的另一个没有子类的类可以正常工作!所以它与父/子关系有关。
事实并非如此,该课程正在吃掉这个例外。
答案 0 :(得分:3)
想出来......
基本上,如果要对属性进行反射,则关闭iOS构建设置中的“链接所有装配”。 (否则,它会删除所有设置者)
这可能花了我很多年才弄明白我是不是偶然发现了......: - (