iOS应用程序在调试模式下正常运行,但在正常模式下崩溃

时间:2015-01-25 07:49:58

标签: ios objective-c iphone xcode ios8

摘要:我正在开发一款应用。奇怪的是当我在调试模式下运行它(将我的设备连接到Xcode并单击运行按钮)时,它会正常运行。但是当我在正常模式下运行它(没有将它连接到Xcode,通常像用户将要做的那样打开它)时,它就会崩溃。

解决方案:请在下面的@ skyline75489看到答案,他的答案保存了我的一天!遇到此问题时,请尝试缩小图像的大小。 详细说明:

现在我正在开发iOS8键盘。在键盘的初始化中,似乎需要大量内存。我认为这不是扩展的问题,而是内存或设置的问题。

for (int i = 0; i<=numberOfImagesInCurrentArray; i++) {
    UIImage *image = [UIImage imageWithContentsOfFile:[currentPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%i.png",i]]];
    if (image) {
        [convertedArray addObject:image];

    }
}

现在的问题是当我处于调试模式时(当我将设备连接到Mac并运行扩展程序并将扩展程序附加到“消息”应用程序时),即使数组包含30个图像,扩展程序也能完美运行。 (需要40M内存)

但是当我在正常模式下运行它(打开“消息”,然后单击文本字段)时,扩展程序在该阵列中只有15个图像崩溃,但是当只有大约10个图像时,它不会崩溃

我的问题是:这个问题是由内存问题引起的吗?或者我在info.plist中设置了一些错误导致调试模式的差异?

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。这是因为iOS 8键盘扩展的内存限制。

目前,键盘扩展的内存限制约为30MB。如果您的扩展程序占用了40M内存,那么它将在真正的iOS设备上被操作系统立即杀死。

但是,在调试时,iOS似乎不再限制它的内存使用量。