Donnerstag, 11. August 2011

Builderror bei MonoTouch-Projekten mit EGOPhotoViewController

In einem aktuellen MonoTouch-Projekt habe ich für die Anzeige einer Bildergalerie das kleine externe Framework EGOPhotoView/EGOPhotoViewController eingebunden. Nach der Implementierung konnte ich das Projekt nicht mehr kompilieren. Es kam im Output immer folgender Fehler:

Undefined symbols:
"__Unwind_Resume", referenced from:
+[EGOCache currentCache] in libPhotoViewerKitMobile.a(EGOCache.o)
-[EGOCache saveCacheDictionary] in libPhotoViewerKitMobile.a(EGOCache.o)
+[EGOImageLoader sharedImageLoader] in libPhotoViewerKitMobile.a(EGOImageLoader.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Process exited with code 1, command:

Abhilfe hat hier folgende Einstellung geschaffen:
- Projekteigenschaften öffnen
- Build => IPhone Build auswählen
- Im Reiter "General" die "Additional mtouch arguments" erweitern um -gcc_flags "-cxx -lgcc_eh"

Tipp:
Um erweiterte Ausgabemeldungen (Output) zu bekommen, muss man einfach in die arguments noch die Parameter -v -v -v aufnehmen.

Mittwoch, 10. August 2011

Zufalls-Datensätze direkt per SQL auslesen

Manchmal benötigt man schnell und einfach einen einzelnen, beliebigen Datensatz aus einer Datenbank/Tabelle. Wo mir dieses bislang sehr nützlich erschien, war zum Beispiel beim Einlesen von Zufallsbildern auf mobilen Geräten. Um hier keinen unnötigen Overhead wie das Erstellen von Objekt-Id-Listen zu erzeugen, ist es manchmal hilfreich einfach nur einen Zufallswert direkt aus der Datenbank geliefert zu bekommen. Dieses kann man ganz einfach wie folgt realisieren.

MS-SQL-Server:
SELECT TOP 1 * FROM Testtabelle
ORDER BY NEWID();

SQLite:
SELECT * FROM Testtabelle ORDER BY RANDOM() LIMIT 1;