我正在学习ios编程。但我有一个问题是UIAccelerometer。我该如何保持UIAccelerometer对象?
这是代码优先。
- (void)viewDidLoad {
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
accelerometer.delegate = self;
accelerometer.updateInterval = kUpdateInterval;
[super viewDidLoad];
}
- (void)accelerometer:(UIAccelerometer *)accelerometer
didAccelerate:(UIAcceleration *)acceleration {
[(BallView *)self.view setAcceleration:acceleration];
[(BallView *)self.view draw];
}
第一个问题是viewDidLoad中,我使用的是sharedAccelerometer
的方法,它返回一个共享对象的系统。
当viewDidLoad结束时,不是局部变量,加速度计,消失?
我认为,当我得到一个加速度计对象,它不见了。
因为viewDidLoad已结束,并且我没有关于此的实例变量。
这只是局部变量。
二是委托方法。
我说,accelerometer.deleate = self in viewDidLoad。
,但我没有关于加速度计的实例变量,所以
该方法是如何被调用,当viewDidLoad中结束?
我真的不明白我该如何保持UIAccelerometer对象。
请帮帮我。
感谢你回答。但我还是不明白。是的,这是一个单身人士。但我想我说共享加速度计,这是单身人士创建的对象。但我认为,当我想使用它时,我必须指出对象。因为当viewDidLoad结束时,对象仍然存在,但我失去了指针,所以我不能使用它。我错了吗? – MoonSoo
你失去了指针,是的,但如果你再次调用'[UIAccelerometer sharedAccelerometer]'你会得到相同的指针。 – jtbandes
谢谢你,这是最后一个问题。我不必在dealloc中释放该对象?委托方法有两个参数,一个是加速度计,另一个是加速度,在此代码中第二个参数,加速度是在BallView类中释放的。但是第一件事,加速计从来没有发布过,它是对的?或者我必须在dealloc中释放它? – MoonSoo