Ios 向NSMutableArray添加更新坐标

Ios 向NSMutableArray添加更新坐标,ios,objective-c,nsstring,nsmutablearray,cllocationmanager,Ios,Objective C,Nsstring,Nsmutablearray,Cllocationmanager,我有一个跟踪用户位置的地图视图,我试图将用户位置坐标添加到数组中,并在textview中显示它们作为测试,但正在显示最近的坐标,我希望它们在textview中显示为列表,类似于NSlog。我想我错过了什么,但不知道是什么 _trackLat = [NSString stringWithFormat:@"%f",newLocation.coordinate.latitude]; _trackLong = [NSString stringWithFormat:@"%f",newLoc

我有一个跟踪用户位置的地图视图,我试图将用户位置坐标添加到数组中,并在textview中显示它们作为测试,但正在显示最近的坐标,我希望它们在textview中显示为列表,类似于NSlog。我想我错过了什么,但不知道是什么

    _trackLat = [NSString stringWithFormat:@"%f",newLocation.coordinate.latitude];
    _trackLong = [NSString stringWithFormat:@"%f",newLocation.coordinate.longitude];
    _trackCoord = [NSString stringWithFormat:@"%@, %@", _trackLat, _trackLong];
    _trackArray = [[NSMutableArray alloc] initWithObjects:_trackCoord, nil];
    self.textView.text = self.trackCoord;
    NSLog(@"coord lat = %f, coord long: %f",newLocation.coordinate.latitude, newLocation.coordinate.longitude);

您应该创建阵列一次:

NSMutableArray *trackArray = [NSMutableArray array];
因为(正确地提到了0x7fffffff),当您将指针设置到由[[NSArray alloc]init…]创建的新数组时,您的数组将得到释放

对于每个新坐标,请执行以下操作:

[trackArray addObject: [NSString stringWithFormat: @"%f, %f\n", newLocation.coordinate.latitude, newLocation.coordinate.longitude]];
self.textView.text = [self.textView.text stringByAppendingString: trackArray.lastObject];

您应该创建阵列一次:

NSMutableArray *trackArray = [NSMutableArray array];
因为(正确地提到了0x7fffffff),当您将指针设置到由[[NSArray alloc]init…]创建的新数组时,您的数组将得到释放

对于每个新坐标,请执行以下操作:

[trackArray addObject: [NSString stringWithFormat: @"%f, %f\n", newLocation.coordinate.latitude, newLocation.coordinate.longitude]];
self.textView.text = [self.textView.text stringByAppendingString: trackArray.lastObject];

您应该创建阵列一次:

NSMutableArray *trackArray = [NSMutableArray array];
因为(正确地提到了0x7fffffff),当您将指针设置到由[[NSArray alloc]init…]创建的新数组时,您的数组将得到释放

对于每个新坐标,请执行以下操作:

[trackArray addObject: [NSString stringWithFormat: @"%f, %f\n", newLocation.coordinate.latitude, newLocation.coordinate.longitude]];
self.textView.text = [self.textView.text stringByAppendingString: trackArray.lastObject];

您应该创建阵列一次:

NSMutableArray *trackArray = [NSMutableArray array];
因为(正确地提到了0x7fffffff),当您将指针设置到由[[NSArray alloc]init…]创建的新数组时,您的数组将得到释放

对于每个新坐标,请执行以下操作:

[trackArray addObject: [NSString stringWithFormat: @"%f, %f\n", newLocation.coordinate.latitude, newLocation.coordinate.longitude]];
self.textView.text = [self.textView.text stringByAppendingString: trackArray.lastObject];

这里有几件事我想指出,第一件是,每次尝试添加新坐标时,似乎都在分配/初始化数组。执行此操作时,将丢弃数组中以前的内容。然后,您永远不会实际将数组指定为文本字段的文本

作为旁注,您不必构造字符串来保存自己的坐标。您只需使用
NSStringFromCGPoint()
,然后输入纬度和经度

NSString *coordinate = NSStringFromCGPoint(CGPointMake(newLocation.coordinate.longitude, newLocation.coordinate.latitude));

if (!self.trackArray) {
    self.trackArray = [[NSMutableArray alloc] init];
}

[self.trackArray addObject:coordinate];
[self.textView setText:[self.trackArray description]];

这里有几件事我想指出,第一件是,每次尝试添加新坐标时,似乎都在分配/初始化数组。执行此操作时,将丢弃数组中以前的内容。然后,您永远不会实际将数组指定为文本字段的文本

作为旁注,您不必构造字符串来保存自己的坐标。您只需使用
NSStringFromCGPoint()
,然后输入纬度和经度

NSString *coordinate = NSStringFromCGPoint(CGPointMake(newLocation.coordinate.longitude, newLocation.coordinate.latitude));

if (!self.trackArray) {
    self.trackArray = [[NSMutableArray alloc] init];
}

[self.trackArray addObject:coordinate];
[self.textView setText:[self.trackArray description]];

这里有几件事我想指出,第一件是,每次尝试添加新坐标时,似乎都在分配/初始化数组。执行此操作时,将丢弃数组中以前的内容。然后,您永远不会实际将数组指定为文本字段的文本

作为旁注,您不必构造字符串来保存自己的坐标。您只需使用
NSStringFromCGPoint()
,然后输入纬度和经度

NSString *coordinate = NSStringFromCGPoint(CGPointMake(newLocation.coordinate.longitude, newLocation.coordinate.latitude));

if (!self.trackArray) {
    self.trackArray = [[NSMutableArray alloc] init];
}

[self.trackArray addObject:coordinate];
[self.textView setText:[self.trackArray description]];

这里有几件事我想指出,第一件是,每次尝试添加新坐标时,似乎都在分配/初始化数组。执行此操作时,将丢弃数组中以前的内容。然后,您永远不会实际将数组指定为文本字段的文本

作为旁注,您不必构造字符串来保存自己的坐标。您只需使用
NSStringFromCGPoint()
,然后输入纬度和经度

NSString *coordinate = NSStringFromCGPoint(CGPointMake(newLocation.coordinate.longitude, newLocation.coordinate.latitude));

if (!self.trackArray) {
    self.trackArray = [[NSMutableArray alloc] init];
}

[self.trackArray addObject:coordinate];
[self.textView setText:[self.trackArray description]];

我认为您不能将NSArray类型的指针传递给setText:这至少会给您一个编译器警告@黑客2007谢谢你指出这一点,现在还早!我忘了必须在这里显式调用description,因为这不是日志。我认为您不能将NSArray类型的指针传递给setText:这至少会给您一个编译器警告@黑客2007谢谢你指出这一点,现在还早!我忘了必须在这里显式调用description,因为这不是日志。我认为您不能将NSArray类型的指针传递给setText:这至少会给您一个编译器警告@黑客2007谢谢你指出这一点,现在还早!我忘了必须在这里显式调用description,因为这不是日志。我认为您不能将NSArray类型的指针传递给setText:这至少会给您一个编译器警告@黑客2007谢谢你指出这一点,现在还早!我忘了这里必须显式调用description,因为这不是日志。