给我的对象之一赋值时出现一个奇怪的错误。尽我所能,编译器认为我正在分配一个只读变量。它在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];
不变是拥有这样一个初始化程序的全部含义。