Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Cordova自定义摄像头插件-iOS内存泄漏_Ios_Objective C_Memory Leaks_Camera_Cordova Plugins - Fatal编程技术网

Cordova自定义摄像头插件-iOS内存泄漏

Cordova自定义摄像头插件-iOS内存泄漏,ios,objective-c,memory-leaks,camera,cordova-plugins,Ios,Objective C,Memory Leaks,Camera,Cordova Plugins,我正在为iOS和Android编写一个定制的摄像头插件,因为默认插件没有提供我需要的功能 我想要实现的是在后台从相机检索图像,而不显示预览屏幕/窗口,这样就可以从Javascript请求图像,并直接在HTML中使用它们,或者通过HTTP POST在Base64中发布它们。(+其他一些还没有准备好的东西:)) 我实际上已经管理好了,我已经在这里上传了我的插件: 在安卓上一切正常,但我在iOS上遇到了问题(可能是内存泄漏) 它可以工作3-4分钟,内存正在增加,突然停止刷新(应用程序仍处于活动状态,

我正在为iOS和Android编写一个定制的摄像头插件,因为默认插件没有提供我需要的功能

我想要实现的是在后台从相机检索图像,而不显示预览屏幕/窗口,这样就可以从Javascript请求图像,并直接在HTML中使用它们,或者通过HTTP POST在Base64中发布它们。(+其他一些还没有准备好的东西:))

我实际上已经管理好了,我已经在这里上传了我的插件:

在安卓上一切正常,但我在iOS上遇到了问题(可能是内存泄漏)

它可以工作3-4分钟,内存正在增加,突然停止刷新(应用程序仍处于活动状态,相机对象也处于活动状态)

由于启用了ARC,我自己无法手动释放/处置某些对象。我试图用@autoreleasepool{}包装一些看起来很有策略的地方,内存使用稍微好一点,但问题仍然存在

我想知道是否有一个客观的C专家可以看看我的插件,也许可以提供一些关于如何解决这个问题的建议,或者至少找到它的来源

我有一种感觉,那就是每隔50-100毫秒调用一次插件来检索占用内存而不会释放的图像(返回的字符串在8kb到2Mb之间,具体取决于相机的分辨率):

但即使停止刷新和相机,即使CPU使用率降低,内存也永远不会释放

为了激发人们对代码的兴趣,我在这里准备了一个简单易用的Ionic项目:

正常抓取后,您只需执行以下操作:

cordova platform add ios (or android)
ionic build ios (or android)
也许有更好的方法。欢迎您提出建议:)

我已经意识到(当然是在创建了我自己的之后),我不是第一个有这个想法的人,但是查看现有的变体并不能帮助我解决这个问题

我试过的那些显然也有类似的记忆问题


提前感谢。

我们在Cordova项目中遇到了完全相同的问题(重复返回base64编码图像并在webview中显示图像;占用内存并在约3分钟后崩溃)。在我的一个测试中,我以相同的速率进行了调用,但没有使用datauri设置映像src。没有撞车。这似乎表明内存泄漏实际上在SafariWebView中。你有没有观察到同样的情况,或者你确信这是在本土?(我已经尝试过处理Safari GC问题,但到目前为止没有成功。)看看@autoreleasepool指令。我们正在追踪僵尸物体,这很有帮助。
cordova platform add ios (or android)
ionic build ios (or android)