当前,我们的Objective-C应用程序有两个用例,它们连接到node.js服务器。第一种情况是将我们的应用程序托管在客户端服务器上,我们直接在node.js中拥有SSL证书。第二个是我们的云托管解决方案,其中我们将所有内容都路由到具有SSL证书而不是in节点的Azure Web应用程序防火墙。
我的问题或困惑是,当我们连接到azure服务器时,平板电脑应用程序会记录所有这些BoringSSL日志和TIC读取状态日志:
[BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C12.1:2][0x101843dd0] get output frames failed, state 8196
TIC Read Status [12:0x0]: 1:57
TIC Read Status [12:0x0]: 1:57
Run Code Online (Sandbox Code Playgroud)
但是,当我们连接到不使用Azure服务的客户端服务器时,我们看不到这些日志中的任何一个,但是它们都在使用SSL。
我们没有看到任何请求失败的任何问题,但是我们想知道这是否可能导致几个小时的使用过程中性能下降。
平板电脑上的Objective-C代码或配置文件中是否有某些东西触发了这些日志,或者Web应用程序防火墙中有这东西?
这些日志的发生频率很高,以至于很难跟踪和调试与实际问题相关的日志。
我正在尝试打开一个SQLite3可以随时访问的数据库。我创建了一个DBModel类以及一个DBManager. 模型是NSString dbName、NSString dbPath和 SQLite3 db,以及BOOL dbOpened.
我创建这个类的原因是为了帮助管理SQLite我们以前的开发人员创建的大约十几个不同的数据库,而不是在各处创建、打开、关闭和删除这些数据库,我决定创建管理器来在一个地方处理所有这些。
一个简单的例子是:
if(sqlite3_prepare_v2(dbm.sitesDBModel.db,query , -1, &statement, NULL) == SQLITE_OK) {
if(sqlite3_step(statement) == SQLITE_DONE) {
//do stuff here
}
}
Run Code Online (Sandbox Code Playgroud)
dbm是DBManager,siteDBModel是DBModel与我们的网站数据相关的查询和声明均已事先声明。
我得到的错误是:
使用无效数据库连接指针的 API 调用。
我在声明 sqlite3 *db 并在同一代码块中打开它时看到了这项工作,但我想防止每次我想运行查询时都必须在不同的视图控制器中声明这些变量,这也是我创建类来处理这些任务。
数据库模型
@interface DBModel : NSObject {
NSString *dbName;
NSString *dbTempName;
NSString *dbPath;
NSString *dbTempPath;
sqlite3 *db;
BOOL dbOpen;
}
@property (nonatomic, retain) NSString *dbName; …Run Code Online (Sandbox Code Playgroud)