gpt4 book ai didi

Cocoa 引用 NSArray 值

转载 作者:行者123 更新时间:2023-12-03 18:03:38 24 4
gpt4 key购买 nike

我有一串数据“纬度、经度、位置”存储为 NSString。

我想以不同的方式引用数据,因此我将其存储到 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 会滑入 View ,我尝试传递数据,但我没有任何运气。我的应用程序没有传递数据,而是崩溃了。

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

showMap.currentLocation = Location;

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

我想我的简单问题是......我如何正确存储我的变量,以便我可以将它们传递到我的 ShowMapViewController 上。

最佳答案

看起来您在两个地方使用了 ivar Longitude 。在 convertButtonPressed: 中,您使用 objectAtIndex: 从数组中提取它,在 plotButtonPressed: 中,您正在重用该值。

请注意,当您获取 Location 的值时,您没有使用以 newalloc 开头的方法copy,这意味着,如果您希望该值存在于当前自动释放池之外,则必须手动保留复制它。您在这里没有这样做,因此在 convertButtonPressed:plotButtonPressed: 之间的一段时间,自动释放池被弹出,并且您的对象被释放,给您留下危险的悬空指针。

关于Cocoa 引用 NSArray 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com