Dan*_*rly 16 c# iphone ios xamarin sqlite-net
我有最简单的应用程序,我以为在我全神贯注之前我会在我的设备上尝试.但是,当我在iPhone上运行它时,我收到了最奇怪的错误消息(与我的macbook上的模拟器相关).
表没有(公共)列.
我正在使用SQLite.Net PCL,我已经从git hub构建了它,因为我遇到了一些问题,否则没有IOS的平台dll.
相关代码.
在我的模型中我有这个:
public class Setting
{
[PrimaryKey, AutoIncrement]
public long Id { get; set; }
[Indexed]
public string Key { get; set; }
public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
抛出此错误消息的代码很简单:
using (SQLiteConnection db = GetCon ()) {
db.CreateTable<Setting> ();
}
Run Code Online (Sandbox Code Playgroud)
但在我看来,最奇怪的是这个代码在模拟器上工作正常,但崩溃了iphone本身的应用程序.
如果有人有一些想法会很棒.
编辑:此错误在此文件行380 上的SQLite.Net-PCL库上引发,但仅在设备上而不在模拟器上.
Dan*_*rly 10
对于其他可能关注的人,我找到了问题的答案.问题是Type没有任何属性(有问题的类型是简单模型类).知道这是垃圾我发现以下链接提供了更多信息,我将在这篇文章中涉及到链接已经死亡:
注意:小心装配链接器
如果您在启用链接器的情况下构建,则可能需要在某处使用该类,因此在编译时不会被删除.有时,仅在代码中实例化类是不够的,链接器可能会检测到实例从未使用过,并且无论如何都会将其删除.
http://developer.xamarin.com/guides/ios/advanced_topics/linker/
可以通过"项目选项"中的链接器行为下拉列表自定义链接过程.要访问此项,请双击iOS项目并浏览到iOS Build> Linker Options,如下图所示(有关详细信息,请参阅链接)
我现在已经将它取消链接了,但是,我会在发布之前尝试让链接器忽略这些类.感谢你的帮助.