以下代码不会崩溃
- (void) locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
_heading = newHeading.trueHeading;
NSLog(@"heading - %.2f", newHeading.trueHeading);
//NSLog(@"Updating heading - %f", newHeading.trueHeading);
}
这个在哪里
- (void) locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
self.heading = newHeading.trueHeading;
NSLog(@"heading - %.2f", newHeading.trueHeading);
//NSLog(@"Updating heading - %f", newHeading.trueHeading);
}
有人可以解释为什么会这样吗?该属性看起来像:
@property (nonatomic, assign) float heading;
它也从未在init方法中初始化,因为我不希望在它正确之前存储值。现在是:
- (id) initUser
{
return [self init];
}
答案 0 :(得分:0)
声明属性后,应使用@synthesize
告诉编译器生成getter和setter方法。默认情况下,这些方法名为foo和setFoo,其中foo是变量的名称。此外,默认情况下,属性表示的变量与属性具有相同的名称,除非您使用@synthesize foo = _foo更改它以使用其他命名实例变量。