2009-11-10 27 views
1

擔心的是保證與編譯到iPhone應用程序的Sqlite頭文件的兼容性。如果在編譯時使用的頭文件來自更新的版本,那麼安裝在iPhone上的動態庫會怎樣?這可能是由於應用程序運行在較舊或較新的iPhone操作系統版本上,因此該應用程序是使用該操作系統構建的。在iPhone上使用Sqlite動態庫是否安全?或者我們應該總是靜態鏈接。順便說一句:寧可不使用核心數據。是否與iPhone上的Sqlite庫安全地動態鏈接?

回答

0

SQLite對於api兼容性非常小心。我認爲有一些非常老的apis被標記爲不推薦使用,但是AFAIK仍然可以被調用。這就是說,爲什麼不包括合併?

0

sqlite文檔似乎建議檢查頭文件版本是否與庫版本相同:http://www.sqlite.org/c3ref/libversion.html。擔心,因爲它似乎並沒有提供一個合同/保證事情將繼續在各個版本上工作。除了棄用之外,還可能存在其他類型的不兼容性,關於可能導致崩潰的行爲或對象大小。至於合併,將增加680K左右的應用程序。對於移動應用程序來說非常大

0

首先,iPhone環境由Apple嚴格控制,因此您不必擔心設備上安裝的各種SQLite庫。其次,當你使用Xcode鏈接到一個庫時,你可以選擇鏈接到sqlite,sqlite3,sqlite3.6等。這樣,如果你使用的是一個功能,並且不能使用3.6以前的任何東西,你可以在您的應用程序中指定。第三,SQLite是一個穩定的項目,你可以相信作者不會在沒有警告的情況下對API做出根本性的改變。如果你連接到sqlite3,你應該是安全的,除非你做了一些非常奇怪的事情。第四,如果你正在做一些非常奇怪的事情,那依賴於特定版本的SQLite的怪癖,那麼你應該靜態地鏈接到庫或者停止做那真正奇怪的事情。

總之,是的,它是完全安全的,並建議動態鏈接到iPhone上的sqlite庫,除非你做的事情真的很奇怪。