1

我在我的应用程序中使用 PSTCollectionView。在我将 PSTCollectionViewController 的子类添加到 UINavigationController 链之前,一切都运行良好。当我点击导航控制器的后退按钮时,应用程序崩溃EXC_BAD_ACCESS (code=1, address=0xc0000010)

PS:我使用ARC。感谢帮助。

#0  0x01592d15 in objc_retain ()
#1  0x00030dde in -[PSTCollectionView setDelegate:] at <project_path>/Controllers/PSTCollectionView/PSTCollectionView.m:1225
#2  0x00725596 in -[UIScrollView dealloc] ()
#3  0x00023805 in -[PSTCollectionView dealloc] at <project_path>/Controllers/PSTCollectionView/PSTCollectionView.m:227
#4  0x01592e3d in _objc_rootRelease ()
#5  0x00718b73 in -[UIView(Hierarchy) removeFromSuperview] ()
#6  0x00728563 in -[UIScrollView removeFromSuperview] ()
#7  0x00714c10 in -[UIView dealloc] ()
#8  0x01592e3d in _objc_rootRelease ()
#9  0x01592e00 in objc_release ()
#10 0x01593c50 in (anonymous namespace)::AutoreleasePoolPage::pop(void*) ()
#11 0x01bf2ea8 in _CFAutoreleasePoolPop ()
#12 0x01bf580b in __CFRunLoopRun ()
#13 0x01bf4d84 in CFRunLoopRunSpecific ()
#14 0x01bf4c9b in CFRunLoopRunInMode ()
#15 0x024867d8 in GSEventRunModal ()
#16 0x0248688a in GSEventRun ()
#17 0x006e2626 in UIApplicationMain ()
#18 0x00001f4d in main at <project_path>main.m:16
#19 0x00001e75 in start ()
4

1 回答 1

1

这似乎与ARC有关。我通过更改 PSTCollectionView.m 来修复它,如下所示:

- (void)setDelegate:(id<PSTCollectionViewDelegate>)delegate {
    if( !delegate )
        return;

    //Rest of the function as normal
}

这对我来说没有多大意义,但它确实有效。

于 2013-03-18T10:00:06.683 回答