2012-11-10 64 views
1

我試圖跨越兩個座標中心的地圖。它工作得很好iOS上的早期版本,但現在突然,我收到此錯誤信息:iOS6中的MapView在縮放地圖時崩潰

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid Region <center:nan, nan span:nan, nan>' 

什麼地方不對勁任何想法?

 CLLocationCoordinate2D savedCoordinate; 
     savedCoordinate.latitude = [userDef doubleForKey:@"savedCoordinate-latitude"]; 
     savedCoordinate.longitude = [userDef doubleForKey:@"savedCoordinate-longitude"]; 

     savedPosition = savedCoordinate; 

     CLLocationDistance visibleDistance = 100; 
     MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(savedCoordinate, visibleDistance, visibleDistance); 
     MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region]; 
     [mapView setRegion:adjustedRegion animated:NO]; 

回答

2

錯誤消息告訴你的問題:你指定的座標包含(「非數字」),而不是一個普通號。

如果你記錄你的座標,你應該能夠找出具體的細節。特別是,我會看savedCoordinate.latitudesavedCoordinate.longitude。也許你在用戶默認值中存儲一個字符串而不是數字?如果該鍵不存在於用戶默認值中,則這些鍵應該爲0而不是南。

參見:

+0

[USERDEF setDouble:location.latitude forKey:@ 「savedCoordinate緯度」]; [userDef setDouble:location.longitude forKey:@「savedCoordinate-long」]; [userDef setBool:YES for forKey:@「savedCoordinate-exist」]; ,我應該存儲其他東西,而不是一個雙? – Christoffer

+0

在傳入'MKCoordinateRegionMakeWithDistance'之前'savedCoordinate'看起來像什麼? –