私は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がないデータベースの最初の.Insert()を実行しようとすると、エラーが発生します。それでも、そうです。
そして2つ目では、「「シード」のGetメソッドが見つかりません」というメッセージが表示されます。
WTF、RELEASEをコンパイルすると、メタデータが存在しないか、より正確には信頼できないようです... 2番目のクラスのPKは問題なく検出されたようですが、最初のクラスではできませんでした。そして、フィールドのゲッターを見つけることができませんでした...これはクレイジーです。
そして、このコードは、デバッグを実行するときに問題なく機能します。
いったい何がここで間違っている可能性がありますか?
土壇場でSQLiteがダウンすることを除いて、iPhoneアプリをリリースする準備ができています。ヘルプ!
====これは虚偽表示でした:
更新:サブクラスを持たない他のクラスは正しく機能します!つまり、それは親子関係と関係があります。
これは真実ではありません、例外はそのクラスのために食べられていました。