【发布时间】:2014-11-10 16:47:03
【问题描述】:
不久之后,我的应用程序出现问题,一旦我关闭特定的 UIViewController,应用程序就会崩溃,并出现 Tread 1:breakpoint 1.1 7.1。
我已将问题缩小到放置在已关闭视图中的“容器视图”。我注意到首先释放了主控制器,然后是容器视图控制器,但看不到问题所在。我不确定这个问题是什么时候出现的,因为我几天都在处理特定的界面问题,并且从未使用过“导航返回”选项。
我知道上面的描述很模糊,但是任何关于如何调试可能原因的建议都非常受欢迎,因为我在这个阶段已经花了几个小时。
#0 0x00000001954440a8 in objc_exception_throw ()
#1 0x0000000184d05d88 in +[NSException raise:format:] ()
#2 0x0000000185b59f00 in NSKVODeallocate ()
#3 0x0000000184be5378 in CFRelease ()
#4 0x0000000184bf1938 in -[__NSArrayM dealloc] ()
#5 0x000000019545d724 in (anonymous namespace)::AutoreleasePoolPage::pop(void*) ()
#6 0x0000000184be8f94 in _CFAutoreleasePoolPop ()
#7 0x0000000184cbb750 in __CFRunLoopRun ()
#8 0x0000000184be91f4 in CFRunLoopRunSpecific ()
#9 0x000000018dd775a4 in GSEventRunModal ()
#10 0x000000018951a784 in UIApplicationMain ()
#11 0x00000001000cdc04 in main at /Users/Luuk/Documents/Xcode development/idoms-portal/iDoms/main.m:14
#12 0x0000000195ab2a08 in start ()
编辑: 我已将其缩小到将容器链接到视图控制器:
@interface DOPrototypeViewController : UIViewController <DOContentSizeCallback> {
@protected
DOMediaPlayerHelper* _mediaPlayerHelper;
__weak NSString* _viewTitle;
IBOutlet UIBarButtonItem *_previousPageBttn;
IBOutlet UIBarButtonItem *_nextPageBttn;
__weak IBOutlet UIView* _contentContainer;
__weak IBOutlet UIScrollView* _scrollView;
}
@property (nonatomic, weak) NSString* viewTitle;;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *contentViewHeightConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *contentViewWidthConstraint;
一旦链接 IB 中的容器,就会出现问题。如上所述,似乎首先卸载了 DOPrototypeViewController,然后才是 contentContainer 控制器。它必须与返回到我感觉的 contentContainer 的父视图的链接有关。
【问题讨论】:
-
崩溃的错误是什么?发布相关代码和相关崩溃日志详细信息(堆栈跟踪和错误)。
-
“一旦我解除分配” 你解除分配?你应该永远打电话给
dealloc。 -
抱歉,我关闭了视图控制器,并调用了 dealloc。
-
我想我解决了,它是一个 [[self view] addObserver:self forKeyPath:@"frame" options:0 context:nil];不过,我之前确实认为是这样,但并没有解决问题,而是我完全重建了界面,几乎没有崩溃。
标签: ios objective-c dealloc