Skip to content

Instantly share code, notes, and snippets.

Created Aug 2, 2012
What would you like to do?
FMDB custom functions
[db makeFunctionNamed:@"UTTypeConformsTo" maximumArguments:2 withBlock:^(sqlite3_context *context, int argc, sqlite3_value **argv) {
if (sqlite3_value_type(argv[0]) == SQLITE_TEXT) {
const unsigned char *a = sqlite3_value_text(argv[0]);
const unsigned char *b = sqlite3_value_text(argv[1]);
CFStringRef as = CFStringCreateWithCString(0x00, (const char*)a, kCFStringEncodingUTF8);
CFStringRef bs = CFStringCreateWithCString(0x00, (const char*)b, kCFStringEncodingUTF8);
sqlite3_result_int(context, UTTypeConformsTo(as, bs));
else {
NSLog(@"Unknown formart for UTTypeConformsToSQLiteCallBackFunction (%d) %s:%d", sqlite3_value_type(argv[0]), __FUNCTION__, __LINE__);
// later on:
FMResultSet *rs = [db executeQuery:@"select displayName, key from items where UTTypeConformsTo(uti, 'public.image') order by 2"];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment