sqlite: sqlite3_column_count gibt immer 0 zurück

8

Ich benutze sqlite in einem iOS-Projekt. Allerdings gibt sqlite3_column_count immer 0 zurück, obwohl ich sicher bin, dass die Abfrage einige Spalten zurückgibt (ich glaube nicht einmal, dass eine SELECT-Abfrage in SQL mit Null-Ausgabespalten möglich ist). Das Merkwürdige ist, dass sich dieses Verhalten abhängig von der Version der Bibliothek ändert, mit der ich verlinke, und speziell, welche Optionen für die Kompilierungszeit für diese Bibliothek verwendet wurden.

Dies sind die Optionen für die Kompilierungszeit, die für die Version der Bibliothek verwendet werden, die nicht funktioniert:

%Vor%

Hier sind die Flags für die Version, die funktioniert:

%Vor%

Was könnte dieses Verhalten verursachen?

UPDATE 2016/12/01

Hier ist ein Projekt, das verwendet werden kann, um das Problem neu zu erstellen: Ссылка

ViewController.swift enthält diesen Code:

%Vor%

Diese Funktion enthält Folgendes:

%Vor%

Diese Funktion funktioniert in allen Fällen gut und erstellt immer die Tabelle und ruft ihren Namen ohne Fehler aus sqlite_master ab.

ViewController.swift enthält auch diesen Code:

%Vor%

Dieser Code erstellt eine Tabelle und versucht dann, seinen Namen von sqlite_master abzurufen. Dies funktioniert gut mit dem Projekt, das gerade im Repo eingerichtet wurde. Um den Fehler zu reproduzieren, müssen Sie den Google Analytics-Pod installieren. Sie können dies tun, indem Sie pod 'Google/Analytics' in Podfile auskommentieren und pod install ausführen. Jetzt, wenn Sie versuchen, dieses Projekt auszuführen, wird der erste Code-Satz ( Test.doDbStuff() ) weiterhin funktionieren, aber der zweite Code-Code, der Database verwendet, wird entweder mit EXC_BAD_ACCESS oder mit SQLITE_MISUSE von% co_de zurückgegeben %.

    
Ian Newson 30.11.2016, 18:36
quelle

0 Antworten