我正在CMMotionManager用于检索加速度计数据.问题是加速度计数据会定期打印,实例变量会在视图中更改,但视图不会重新绘制.我已经检查过这hv不是零,而且一切都被吸引住了.在块中调用setNeedsDisplay是否有问题?
-(void) viewDidAppear:(BOOL) animated
{
[super viewDidAppear: animated];
[motionManager startAccelerometerUpdatesToQueue:motionQueue withHandler:
^(CMAccelerometerData *accelerometerData, NSError *error)
{
NSLog(@"%@",accelerometerData);
HypnosisView *hv = (HypnosisView *) [self view];
hv.xShift = 10.0 * accelerometerData.acceleration.x;
hv.yShift = -10.0 * accelerometerData.acceleration.y;
[hv setNeedsDisplay];
}];
}
Run Code Online (Sandbox Code Playgroud) 我在xcode 4.2中使用没有ARC的空模板创建了一个iphone应用程序.我目前没有使用ARC,因为我想学习引用计数的基础知识.在应用程序委托中,我有以下方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
为什么要window自动释放?是因为AppDelegate将来不会使用它吗?但它被分配给实例变量.还有一个window释放的dealloc方法.它为什么在已经自动释放时发布?
- (void)dealloc
{
[_window release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)