摘要:我正在开发一款应用。奇怪的是当我在调试模式下运行它(将我的设备连接到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中设置了一些错误导致调试模式的差异?
答案 0 :(得分:3)
我遇到了同样的问题。这是因为iOS 8键盘扩展的内存限制。
目前,键盘扩展的内存限制约为30MB。如果您的扩展程序占用了40M内存,那么它将在真正的iOS设备上被操作系统立即杀死。
但是,在调试时,iOS似乎不再限制它的内存使用量。