2016-12-12 49 views
6

Muhteşem ve şaşırtıcı SQLite.swift ile ilgili olarak,iOS SQLite.swift?

App Store'da bir uygulama var, v7. V8'e yükseltme var. Kullanıcı X, uygulama mağazasını kullanarak v7’yi v8’e yükseltir.

V8'de, sql tablolarından birini biraz değiştirdik, belki bir sütun ekleyebilir veya bir sütunu yeniden adlandırabiliriz.

Bu durumda SQLite.swift'te özel bir şey yapmalı mıdır?

Bunu işlemek için SQLite.swift yolu nedir? (. Ör, Android karmaşık konuların da kendi seti ile birlikte geliyor onların helper class bir kullanışlı onUpgrade kavram var ... In)

+0

burada lütuf! – Fattie

cevap

6

SQLiteOpenHelper uygulanması oldukça basittir:

 db = SQLiteDatabase.openDatabase(...); 

     onConfigure(db); 

     int version = db.getVersion(); 
     if (version != mNewVersion) { 
      db.beginTransaction(); 
      try { 
       if (version == 0) { 
        onCreate(db); 
       } else { 
        if (version > mNewVersion) { 
         onDowngrade(db, version, mNewVersion); 
        } else { 
         onUpgrade(db, version, mNewVersion); 
        } 
       } 
       db.setVersion(mNewVersion); 
       db.setTransactionSuccessful(); 
      } finally { 
       db.endTransaction(); 
      } 
     } 

Sadece aynısını Swift'de yapın.

onUpgrade()'un nasıl uygulanacağını öğrenmek için bkz. SQLiteOpenHelper onUpgrade() Confusion Android.

+0

Swift koduna sahip olmak yararlı olacaktır. – Suragch

+0

Merhaba CL., (1) bunun için teşekkürler (2) prensibi anlıyorum (3) bu kodda, gerçekten "onUpgrade" maddenin kalbi olduğunu unutmayın (tabloları değiştirmek, ama bizim verilerimiz kadar sağlam tutmak mantıksal olarak mümkün) – Fattie

+0

@CL eklediğiniz çok değerli bağlantı, teşekkürler – Fattie