给我的对象之一赋值时出现一个奇怪的错误。尽我所能,编译器认为我正在分配一个只读变量。它在myPlace.publicLocation ...行上为我提供“作为赋值左操作数所需的左值”。

我确定这是一个典型的新手错误-我在哪里出错?

CSPlace *myPlace;
myPlace.publicLocation.coordinate.latitude =
    [[separatedData objectAtIndex:0] floatValue];


类:

#import <CoreLocation/CLLocation.h>
@interface CSPlace : NSObject {
    CLLocation *publicLocation;
}
@property (copy, nonatomic) CLLocation *publicLocation;
@end
#import "CSPlace.h"
@implementation CSPlace
@synthesize publicLocation;
@end

最佳答案

CLLocation关于纬度和经度的不变类。因此,您无法修改其纬度。您必须创建一个新对象:

[[CLLocation alloc] initWithLatitude:latitude longitude:longitude];


不变是拥有这样一个初始化程序的全部含义。

07-26 09:38