2010-11-01 48 views
0

我有一個數據字符串「緯度,經度,位置」存儲爲一個NSString。可可參考NSArray值

我想以不同的方式引用數據,所以我將它存儲到NSArray中。

然後我將數據存儲在容易閱讀的NSString值中,並希望重複使用它們幾次。

- (IBAction)convertButtonPressed:(id)sender 
{ 
NSString *returnData = @"49.1002,-102.1253,12-03-22-W3"; 

explode = [returnData componentsSeparatedByString:@","]; 

Latitude = [explode objectAtIndex: 0]; 
Longitude = [explode objectAtIndex: 1]; 
Location = [explode objectAtIndex: 2]; 
Query.text = [NSString stringWithFormat:@"%@", Location]; 
Result.text = [NSString stringWithFormat:@"%@, %@", Latitude, Longitude]; 
} 

然後,我將這些值設置爲UILabel值。在這一點上我沒有問題。我希望用戶能夠做的下一件事是將這些數據繪製到MKMapView上。所以我有一個UIButton設置來繪製數據。當它被點擊時,一個新的ViewController滑入視圖,我嘗試傳遞數據,但是我沒有任何運氣。我的應用程序崩潰,而不是傳遞數據。

- (IBAction)plotButtonPressed:(id)sender; 
{ 
ShowMapViewController *showMap = [[ShowMapViewController alloc] initWithNibName:nil bundle:nil]; 

showMap.currentLocation = Location; 

showMap.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:showMap animated:YES]; 
} 

我想我的這個簡單的問題是...我如何正確地儲存我的變量,這樣我可以將它們傳遞到我的ShowMapViewController。

+0

它碰撞了什麼錯誤?此外,如果您希望ShowMapViewController繪製地圖上的位置,您是否還需要將其經緯度傳遞給它? – Anna 2010-11-01 03:11:09

+0

爲什麼不建立一個擁有緯度,經度和位置屬性的模型對象?然後你不需要處理字符串解析和解析。 – 2010-11-01 06:19:57

回答

1

它看起來像你在兩個地方使用伊娃Longitude。在convertButtonPressed:中,您正在使用objectAtIndex:plotButtonPressed:從數組中提取數據,並且正在重新使用該值。

注意,當你得到的價值Location不使用與newalloc,或copy啓動的方法,這意味着,如果你想要的值居住超越目前的自動釋放池,你必須手動retain或者copy吧。你在這裏沒有這樣做,所以在convertButtonPressed:plotButtonPressed:之間有一段時間,autorelease池被彈出,你的對象被釋放,給你一個危險的懸掛指針。

+0

相關文檔鏈接:http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html – 2010-11-01 06:18:52

+0

謝謝您的回覆。我設法解決它昨晚通過添加保留到我的NSArray線。 – 2010-11-02 05:29:38