解析:Program received signal: “EXC_BAD_ACCESS"
在練習時,有這麼段代碼:
CALayer *sublayer = [CALayer layer];
sublayer.backgroundColor = [UIColor blueColor].CGColor;
sublayer.shadowOffset = CGSizeMake(0, 3);
sublayer.shadowRadius = 5.0;
sublayer.shadowColor = [UIColor blackColor].CGColor;
sublayer.shadowOpacity = 0.8;
sublayer.frame = CGRectMake(30, 30, 128, 192);
[self.view.layer addSublayer:sublayer];
由於被書上的內存泄露嚇唬住了,所以又在最後追加了[sublayer release];來釋放內存而在程序調試運行退出時碰到了Program received signal: “EXC_BAD_ACCESS" 錯誤。經網絡搜索搞清楚了這個錯誤產生的幾個原因:
1、訪問受保護或者不存在的內存空間,導致返回了一個錯誤的指針;
2、訪問未進行內存分配或初始化的內存空間;
3、在對象被釋放後仍然採用原來的指針進行訪問;
4、採用了[object release]釋放對象,但其實對象並未採用 alloc/copy/retain 等形式進行內存分配;(這是我此次錯誤的原因)