Функция HEX
является одной из основных функций в sqlite
Я хотел бы вызвать функцию из моего кода Objective-C без фактического создания базы данных в моем приложении ... и т. Д.
Какой самый простой способ вызвать функцию с наименьшим добавлением классов?
Я нашел много функций, написанных на o-c, которые HEX - строка. Тем не менее, они не являются правильными, поскольку они дают результаты, отличные от функции HEX MySQL.
Решение: преобразование строки в ее шестнадцатеричное значение
+(NSString *) stringToHex:(NSString *)str
{
NSString *aResult;
sqlite3 *database;
if(sqlite3_open(":memory:", &database) == SQLITE_OK)
{
NSString *sqlStatement = [NSString stringWithFormat:@"select HEX('%@')",str];
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, [sqlStatement cStringUsingEncoding:NSUTF8StringEncoding], -1, &compiledStatement, NULL) == SQLITE_OK) {
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
aResult = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
}
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
return aResult;
}