我做了以下內容:EXC_BAD_ACCESS在didAccelerate手機上的移動
- (void) accelerometer: (UIAccelerometer *)accelerometer didAccelerate: (UIAcceleration *)acceleration {
if (self.lastAcceleration) {
double i = self.lastAcceleration.x;
,直到我真正傾斜手機,它工作正常。然後我在最後一行得到EXC_BAD_ACCESS
。 lastAcceleration是一個帶有保留的屬性。當我在調試器中查看「x」時,它具有很大的負值。爲什麼僅在傾斜時纔會拋出EXC_BAD_ACCESS
異常?
- EDIT(因爲這個答案適用於下面的反應) -
我說這個,現在它的工作原理:
爲什麼會是怎麼回事?另外,它應該是
[self.lastAcceleration release];
我以前沒有在任何地方發佈lastAcceleration。以下是標題聲明:
@interface MyViewController : UIViewController <UIAccelerometerDelegate> {
UIAcceleration *lastAcceleration;
}
@property(nonatomic, retain) UIAcceleration *lastAcceleration;
@end
您需要額外提供更多的代碼。據推測,lastAcceleration值是在某處發佈的(或者不被保留,儘管你說過關於屬性聲明的內容)。 – 2009-11-08 08:14:16
hmm。你能給出一些關於你的代碼應該做什麼的更多解釋嗎? – Morion 2009-11-08 08:16:19
順便說一句,你爲lastAcceleration屬性分配內存? – Morion 2009-11-08 08:17:21