0
-(id)select:(NSString *)original_query
{
    sqlite3_stmt *statement;
    const char * converted = [original_query UTF8String];

    NSLog(@"[INFO] converted char = %s", converted);

    if (sqlite3_prepare_v2(db, converted, -1, &statement, NULL) != SQLITE_OK) {
        @throw [NSException exceptionWithName: @"DB Encriptor" reason: [NSString stringWithFormat: @"Query \"%s\" has failed, we could not execute the SQL statement. '%s'",  converted, sqlite3_errmsg(db) ] userInfo: nil];
    }
    else {
        @try {
             ...
        }
        @catch (NSException * e) {
            NSLog(@"Exception: %@", e);
            return NULL;
        }
    }
}

実行が次の行に到達すると:

const char * converted = [original_query UTF8String];

次のエラーが表示されます。

 2013-06-27 02:17:33.505 proof[25200:3c03] -[__NSArrayM UTF8String]: unrecognized selector sent to instance 0xc954a30

これはおそらく非常に単純でばかげたエラーです。文字列または[NSMutableArray の説明]を UTF8 に変換するためにさまざまなスキーマを試すのに何時間も費やしましたが、今のところ成功していません。Titanium で動作するネイティブ iOS モジュールを作成しています。このメソッドを JavaScript (Titanium) から呼び出して、次のような文字列を渡します。

 encriptmydb.select("SELECT count(*) FROM sqlite_master;") 

しかし、エラーは続きます...

4

1 に答える 1