菜鸟教程小白 发表于 2022-12-13 11:36:00

ios - 内存不足警告总是导致 iPad(第一代)崩溃


                                            <p><div>
            <aside class="s-notice s-notice__info post-notice js-post-notice mb16"role="status">
      <div class="d-flex fd-column fw-nowrap">
            <div class="d-flex fw-nowrap">
                  <div class="flex--item mr8">
                        <svg aria-hidden="true"class="svg-icon iconLightbulb"width="18"height="18"viewBox="0 0 18 18"><path d="M15 6.38A6.48 6.48 0 0 0 7.78.04h-.02A6.49 6.49 0 0 0 2.05 5.6a6.31 6.31 0 0 0 2.39 5.75c.49.39.76.93.76 1.5v.24c0 1.07.89 1.9 1.92 1.9h2.75c1.04 0 1.9 1.92-1.9v-.2c0-.6.26-1.15.7-1.48A6.32 6.32 0 0 0 15 6.37ZM4.03 5.85A4.49 4.49 0 0 1 8 2.02a4.48 4.48 0 0 1 5 4.36 4.3 4.3 0 0 1-1.72 3.44c-.98.74-1.5 1.9-1.5 3.08v.1H7.2v-.14c0-1.23-.6-2.34-1.53​​-3.07a4.32 4.32 0 0 1-1.64-3.94ZM10 18a1 1 0 0 0 0-2H7a1 1 0 1 0 0 2h3Z"></path></svg>
                  <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>可以肯定的是,您应该尝试从设备中获取崩溃日志。测试人员必须将设备与 iTunes 同步,然后导航到 iTunes 复制任何崩溃报告的文件夹。这取决于您使用的平台。</p>

<pre><code>Mac OS X: ~/Library/Logs/CrashReporter/MobileDevice/&lt;DEVICE_NAME&gt;
Windows XP: C:\Documents and Settings\&lt;USERNAME&gt;\Application Data\Apple Computer\Logs\CrashReporter\MobileDevice\&lt;DEVICE_NAME&gt;
Windows Vista or 7: C:\Users\&lt;USERNAME&gt;\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice\&lt;DEVICE_NAME&gt;
</code></pre>

<p><code><USERNAME></code> 是计算机的用户登录名。 <code><DEVICE_NAME></code> 是 iPod touch 或 iPhone 的名称,例如“我的 iPhone”。</p>

<p>有一些方法可以自动收集崩溃报告,我在此处发布了有关可能性的概述,作为另一个答案的一部分:<a href="https://stackoverflow.com/questions/8488894/including-custom-data-into-ios-crash-dumps/8511100#8511100" rel="noreferrer noopener nofollow">Including custom data into iOS crash dumps</a> </p>

<p>此外,您可以在 iOS 模拟器中进行测试时自动发出内存警告。子类 <code>UIViewController</code> 并在 ViewController 出现时自动触发内存警告。</p>

<p>下面是一些关于如何做到这一点的示例代码:</p>

<pre><code>#import &#34;BaseViewController.h&#34;

@interface BaseViewController (Private)
- (void)simulateMemoryWarning;
@end

@implementation BaseViewController

- (void) viewDidAppear:(BOOL)animated {
;

#if TARGET_IPHONE_SIMULATOR
#if defined (CONFIGURATION_Debug)
// If we are running in the simulator and it&#39;s the DEBUG target
// then simulate a memory warning. Note that the DEBUG flag isn&#39;t
// defined by default. To define it add this Preprocessor Macro for
// the Debug target: DEBUG=1
;
#endif
#endif
}

- (void)simulateMemoryWarning {
#if TARGET_IPHONE_SIMULATOR
#if defined (CONFIGURATION_Debug)
SEL memoryWarningSel = @selector(_performMemoryWarning);
if ([ respondsToSelector:memoryWarningSel]) {
    [ performSelector:memoryWarningSel];
} else {
    NSLog(@&#34;%@&#34;,@&#34;Whoops UIApplication no loger responds to -_performMemoryWarning&#34;);
}
(CFStringRef)@&#34;UISimulatedMemoryWarningNotification&#34;, NULL, NULL, true);
#endif
#endif
}

@end
</code></pre>

<p>现在在子类化您自己的 ViewController 而不是从 UIViewController 子类化时使用它。此代码最初发布在这里 <a href="https://gist.github.com/956403" rel="noreferrer noopener nofollow">https://gist.github.com/956403</a>并通过从此处添加解决方案来调整以使用 Xcode 4.2.1 <a href="https://stackoverflow.com/a/2785175/474794" rel="noreferrer noopener nofollow">https://stackoverflow.com/a/2785175/474794</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 内存不足警告总是导致 iPad(第一代)崩溃,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/9292804/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/9292804/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 内存不足警告总是导致 iPad(第一代)崩溃