fuz*_*oat 1 iphone cocoa-touch objective-c
我收到Xcode 3.2.5静态分析仪的警告,我不太明白,警告是:
警告:消息'horizontalAccuracy'的接收者为nil并返回类型为'CLLocationAccuracy'的值,如果([lastGoodLocation horizontalAccuracy] <= DESIREDACCURACY){
代码编译并运行良好,但我只是好奇发生了什么以及如何解决它.
@property (nonatomic, retain) CLLocation *lastGoodLocation;
@synthesize lastGoodLocation;
Run Code Online (Sandbox Code Playgroud)
.
// CHECK FOR BEST LOCATION
if(lastGoodLocation == nil || [newLocation horizontalAccuracy] < [lastGoodLocation horizontalAccuracy]) {
NSLog(@"NEWBEST: %0.0fm (%@)", [newLocation horizontalAccuracy], [newLocation timestamp]);
[self setLastGoodLocation:newLocation];
// DESIRED ACCURACY & GEOCODE
if([lastGoodLocation horizontalAccuracy] <= DESIREDACCURACY) {
Run Code Online (Sandbox Code Playgroud)
可以将newLocation返回为nil,此代码位于:
locationManager:didUpdateToLocation:fromLocation:
if当lastGoodLocationnil(条件的左侧||)时,你可以进入外部,并且在该if块中,你正在调用[lastGoodLocation horizontalAccuracy]可能的nil引用.把内心if变成类似的东西
// DESIRED ACCURACY & GEOCODE
if (lastGoodLocation != nil && ([lastGoodLocation horizontalAccuracy] <= DESIREDACCURACY))
Run Code Online (Sandbox Code Playgroud)
#setLastGoodLocation实际可能是设置lastGoodLocation,但分析器可能没有发现.
编辑:
developer.apple.com上的文档建议虽然oldLocation可能是nil(在第一次修复时),newLocation可能不应该 - 如果位置不起作用,我认为你会收到#locationManager:didFailWithError:.
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |