将Objective C转换为Rubymotion

时间:2013-01-21 15:17:19

标签: fmdb rubymotion sqlcipher

SQLCIPHER sqlite encrypted iphone ios converting un-encrypted database to encrypted database
[fmdb open];
       NSString *sel = @"SELECT count(*) FROM sqlite_master";            
       FMResultSet *fmr = [self executeQuery : fmdb : sel];

        if ( [fmr next] ) // unencrypted
        {
            NSLog(@"Encrypting");
            fmdb.key = @"";
            [fmdb rekey : @"somekey"];
        }

- (BOOL)rekey:(NSString*)key {
    #ifdef SQLITE_HAS_CODEC
    if (!key) {
        return NO;
    }

    int rc = sqlite3_rekey(db, [key UTF8String], (int)strlen([key UTF8String]));

    if (rc != SQLITE_OK) {
        NSLog(@"error on rekey: %d", rc);
        NSLog(@"%@", [self lastErrorMessage]);
    }

    return (rc == SQLITE_OK);
    #else
        return NO;
    #endif
   }

我正在尝试使用 1)FMDB Pod 2)SQLCipher pod 使用Rubymotion iOS项目。

我正在尝试使用SQLCipher加密数据库,但Rubymotion无法识别SQLCipher提供的方法。

我找到了下面提到的一段代码,据报道,这些代码在Objective C和xcode中运行。

有人可以将此转换为Rubymotion吗?

1 个答案:

答案 0 :(得分:0)

我认为您不需要将其转换为RubyMotion。您可以使用类似

的方式从RubyMotion调用此FMDB代码
class Database
  def self.connection
    unless @connection
      @connection = FMDatabase.databaseWithPath(db_path)
      @connection.traceExecution = true if $debug
      @connection.open
      @connection.setKey 'MySecretKey'
    end
  end
end 

Using FMDB + SQLCipher with Rubymotion?

中查看我的回答