Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是MobileServiceSQLiteStore.DefineTable<;T>;每次跑步都需要,如果需要,原因是什么?_Ios_Sqlite_Azure Mobile Services - Fatal编程技术网

Ios 是MobileServiceSQLiteStore.DefineTable<;T>;每次跑步都需要,如果需要,原因是什么?

Ios 是MobileServiceSQLiteStore.DefineTable<;T>;每次跑步都需要,如果需要,原因是什么?,ios,sqlite,azure-mobile-services,Ios,Sqlite,Azure Mobile Services,我正在尝试使用我的移动应用程序提高后续登录(第一次登录后的每次登录)的应用程序启动性能,在进行了一些秒表诊断后,我可以看到使用MobileServiceSQLiteStore.DefineTable定义我的8个表平均需要2.5秒。每一次 在运行iOS7的iPhone4上,如果不是每次都要定义这些表,加载时间将不到一秒钟。我希望它们只需要在安装SQLite数据库时第一次运行应用程序时定义。我已尝试删除后续登录的定义,并尝试仅获取同步表,但由于“Table is not defined”而失败 所以

我正在尝试使用我的移动应用程序提高后续登录(第一次登录后的每次登录)的应用程序启动性能,在进行了一些秒表诊断后,我可以看到使用
MobileServiceSQLiteStore.DefineTable
定义我的8个表平均需要2.5秒。每一次

在运行iOS7的iPhone4上,如果不是每次都要定义这些表,加载时间将不到一秒钟。我希望它们只需要在安装SQLite数据库时第一次运行应用程序时定义。我已尝试删除后续登录的定义,并尝试仅获取同步表,但由于“Table is not defined”而失败


所以,这似乎是有意的行为。您能否解释为什么每次都需要定义它们和/或是否有解决方法?考虑到我的手机现在已经很旧了,它可以忽略不计。。但如果可能的话,我仍然希望删除它。

是的,每次都需要调用它,因为SDK使用它来知道如果您通过非类型化接口(即
imobileservicesynchtable
而不是
imobileservicesynchtable
读取数据,如何反序列化数据

到目前为止,没有办法避免每次都打电话给它。但是,我很惊讶,因为DefineTable不做任何数据库操作,所以需要2.5秒。它只检查类型/作业对象上的成员,并维护一个内存中的字典以供以后重用


我建议您下载并编译SDK并进行调试,以找出实际花费的时间。

您可以尝试附加一个探查器以查看花费的时间,这将有助于开发团队缩小问题的范围。