Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
Objective c Obj-C:strdup帧中Malloc 48字节的内存泄漏_Objective C_Memory Leaks_Strdup - Fatal编程技术网

Objective c Obj-C:strdup帧中Malloc 48字节的内存泄漏

Objective c Obj-C:strdup帧中Malloc 48字节的内存泄漏,objective-c,memory-leaks,strdup,Objective C,Memory Leaks,Strdup,在我的应用程序中,我收到多个内存泄漏。对象是Malloc 48字节,它总是从负责的调用方strdup发起。对象的历史记录仅显示它正在进行Malloced,没有其他保留或释放。stacktrace没有显示我的任何代码。我能找出的唯一相关点是: 10 UIKit _UIGestureRecognizerSendActions 9 UIKit -[UIScrollView handlePan:] 8 UIKit -[UIScrollView _endPanWithEvent:]

在我的应用程序中,我收到多个内存泄漏。对象是Malloc 48字节,它总是从负责的调用方strdup发起。对象的历史记录仅显示它正在进行Malloced,没有其他保留或释放。stacktrace没有显示我的任何代码。我能找出的唯一相关点是:

  10 UIKit _UIGestureRecognizerSendActions
   9 UIKit -[UIScrollView handlePan:]
   8 UIKit -[UIScrollView _endPanWithEvent:]
   7 UIKit -[UIScrollView(Static) _startTimer:]
   6 CoreFoundation CFNotificationCenterAddObserver
   5 CoreFoundation _CFXNotificationRegisterObserver
   4 libnotify.dylib notify_register_dispatch
   3 libnotify.dylib notify_register_mach_port
   2 libnotify.dylib token_table_add
   1 libsystem_c.dylib strdup
   0 libsystem_c.dylib malloc
这似乎是在地图视图上滚动时发生的,但我不确定如何继续,因为堆栈中没有引用我的代码。我应该如何继续诊断此泄漏

如果需要更多信息,请告诉我

问候,, 尼克

如果它“只有”48个字节,所有证据都指向系统框架中的框架(即,分配从未暴露于您的代码中),并且没有成千上万的框架,那么我(a)不会太担心它,但我会(b)立即通过


附上您的应用程序的二进制文件以及如何重现该问题的说明。

我想我已经确认它是在5.1中引入的。当我的应用程序以UIScrollView作为iPhone simulator 5.1的活动视图处于活动状态时,我可以通过按home按钮在我的应用程序中复制每次内存泄漏。在iPhone simulator 5.0上运行的同一测试不会再现该错误


希望这有助于确认这确实是一个反复出现的问题,而不仅仅是你有问题。我在表格滚动和UIScrollView中都看到过这种情况。我已经在模拟器中测试了它,并在iPad上分析了发布版本。这似乎是5.1中的一个常见问题,但我还没有听说解决方法。我同意,每个卷轴上的48字节可能会成为一个问题。

这可能是由performselectorinbackground引起的,请在@autoreleasepool{}块内调用它。

嗨,bbum,快速回复,谢谢!它“只有”48个字节,但它们加起来越多,你使用地图。我以前从未见过这种泄漏(应用程序正进入高级阶段)-是否值得在5.0或4.3模拟器上尝试,看看它是否会产生相同的泄漏?无论如何,谢谢你的建议!对于这类事情,模拟器的行为往往不同,足以使那里的测试变得无关紧要。将bug归档并发布#。这听起来很有可能像是框架中的[相对较小——但每个字节都很重要]泄漏。嗨,bbum,谢谢你,我会的,只是试图消除它可能是我代码中的任何内容的可能性。我很快会发布#的。这方面有什么进展吗?对不起,我刚刚才开始记录。我制作了一个尽可能简单的测试应用程序,只包含了一个带有MKMapView的nib,并且能够重现漏洞,所以我将它记录在了Apple的bug#11227065下。这可能是一个已知的bug,也在[This so thread][1][1]中提到过:我只想对此发表评论,这样就没有人需要再浪费时间去四处寻找了。这是ios 5.1中引入的一个问题。在scroll视图和table视图中都会发生完全相同的泄漏,这实际上是有意义的,因为它们必须以某种方式共享滚动代码。希望能尽快解决。但是,事实上我也遇到了同样的问题,这个问题也解决了。我也面临着同样的问题。。你如何解决这个问题。我喜欢我的案子。这是一个非常简单的应用程序,但当我按下并弹出视图控制器时,内存并没有释放。在我的视图控制器中,我使用的是scrollview和其中的图像。您需要小心不要有保留周期。