1

我的应用程序中有一个按钮,可以将容器视图从表格视图切换到谷歌地图视图。

该开关工作了大约 4 次,然后当我再次尝试切换容器视图时,应用程序崩溃并且我收到以下错误:

(71189,0xac12f2c0) malloc: *** mmap(size=1492946944) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
2013-06-17 21:37:28.876 Vicinitime[71189:12e03] *** Assertion failure in -[UISectionRowData refreshWithSection:tableView:tableViewRowData:], /SourceCache/UIKit_Sim/UIKit-2380.17/UITableViewRowData.m:400
2013-06-17 21:37:28.876 Vicinitime[71189:12e03] *** Terminating app due to uncaught   exception 'NSInternalInconsistencyException', reason: 'Failed to allocate data stores for 373235904 rows in section 0. Consider using fewer rows'
*** First throw call stack:
(0x258b012 0x23b0e7e 0x258ae78 0x1e46665 0x14d969b 0x14dc224 0x13a0952 0x13a02dc 0x13a3dd6     0x13a8a7e 0x13452dd 0x23c46b0 0x533fc0 0x52833c 0x528150 0x4a60bc 0x4a7227 0x549b50 0x130aedf 0x2553afe 0x2553a3d 0x25317c2 0x2530f44 0x2530e1b 0x30617e3 0x3061668 0x12f4ffc 0x24fd 0x2425)
libc++abi.dylib: terminate called throwing an exception
(lldb) 

这是切换容器的代码。抱歉代码乱七八糟,但是viewcontroller2实际上是一个tableview,只是命名错误。det 是一个布尔值

-(IBAction)changer:(id)sender
{

    if(det == TRUE)
    {
        test *viewController2 = [[test alloc]init];
        viewController2.view.frame = self.container.bounds;

        [viewController2 willMoveToParentViewController:self];
        [self.container addSubview:viewController2.view];
        [self addChildViewController:viewController2];
        [viewController2 didMoveToParentViewController:self];

        [UIView beginAnimations:nil context:nil];

        [UIView setAnimationDuration:1];

        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft  forView:self.container cache:YES];

        [UIView commitAnimations];

        det = FALSE;
    }
    else
    {
        ViewController *viewController1 = [self.storyboard instantiateViewControllerWithIdentifier:@"vc1"];
        viewController1.view.frame = self.container.bounds;

        [viewController1 willMoveToParentViewController:self];
        [self.container addSubview:viewController1.view];
        [self addChildViewController:viewController1];
        [viewController1 didMoveToParentViewController:self];
        [UIView beginAnimations:nil context:nil];

        [UIView setAnimationDuration:1];

        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight  forView:self.container cache:YES];

        [UIView commitAnimations];

        det = TRUE;

    }
}

知道发生了什么吗?

4

0 回答 0