iOS8在应用自动调整大小时旋转MKMapView出现帧缓冲错误

8
#import "AppDelegate.h"
#import <MapKit/MapKit.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:   (NSDictionary *)launchOptions
{
    [self setWindow:[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]];
    [self.window makeKeyAndVisible];

    UIViewController *vc = [[UIViewController alloc] init];
    self.window.rootViewController = vc;
    vc.view.autoresizingMask = UIViewAutoresizingFlexibleWidth |    UIViewAutoresizingFlexibleHeight;

    MKMapView *map = [[MKMapView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    map.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    [vc.view addSubview:map];

    return YES;
}

@end

要查看问题,请运行上面的代码并旋转设备。 您将经历显着延迟,以便进行旋转动画。
如果连接iOS8 iPad并运行模拟器, 你会收到这些警告:
崩溃!0x15dd7980 ERROR / SourceCache / VectorKit / VectorKit-992.16 / GeoGL / GLCoreContext.cpp 1237:帧缓冲区不完整,附件不完整
有人知道如何解决这个问题吗?

我曾经遇到过完全相同的问题和错误。使用AutoLayout进行转换以解决它将是不错的选择。如果有人向苹果提交错误报告,那就更好了。 - AmitP
@AmitP 你可以在这里向苹果提交错误报告:https://developer.apple.com/bug-reporting/ 同时,也请在此处重复提交您的错误报告,以便其他开发者社区能够看到:https://openradar.appspot.com/ - stevekohls
2个回答

6
我也遇到了这个问题,发现只有在选择调整大小选项时(即随着视图调整大小调整高度和宽度),才会出现此问题。我没有使用自动布局。
如果我只是向视图添加MKMapView,则没有问题,但如果我选择调整大小,它会生成与上面所示相同的消息。
(很抱歉这是一个评论而不是答案,但我不能在1票上添加评论,我认为这可能有助于诊断问题)
更新-我已在我的一个测试设备上安装了8.1 Beta,我没有遇到这个问题。很有可能这是被隐藏在8.1地毯下的问题 :)

更新 - 我已经在我的一个测试设备上安装了8.1 Beta,我没有遇到这个问题。很有可能这是一个被掩盖在8.1地毯下的问题 :) - schofs
1
我在8.2上看到了这个问题,所以问题仍然存在。 - AdamPro13

1
我最近遇到了这个问题,通过在代码中添加限制条件以前是有效的,但是当我更新应用程序以适应iPhone 6/6+优化时,这种情况下仍然可以在控制台日志中看到错误,并且它以鲜粉色显示。
最好的解决方案是直接在storyboard上添加MKMapView,所有消息和奇怪的颜色行为都得到了解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接