2011-10-26 6 views
20

Tôi có hai chuỗi đại diện cho vĩ độ và kinh độ như: "-56.6462520", và tôi muốn gán cho đối tượng CLLocation để so sánh với vị trí hiện tại của tôi.I đã thử đoạn mã sau nhưng tôi gặp lỗi chỉ:String để CLLocation vĩ độ và kinh độ

CLLocation * LocationAtual = [[CLLocation alloc]init]; 
LocationAtual.coordinate.latitude = @"-56.6462520"; 
LocationAtual.coordinate.longitude = @"-36.6462520"; 

và sau đó so sánh đối tượng với vị trí thực tế của tôi vĩ độ và kinh độ. Bất kỳ đề xuất?

+6

Objective-C ước là camelCase cho tên var. –

Trả lời

11

Tôi nghĩ rằng bạn cần phải:

LocationAtual.coordinate.latitude = [@"-56.6462520" floatValue]; 
LocationAtual.coordinate.longitude = [@"-36.6462520" floatValue]; 
+0

Tôi nhận được điểm, tôi nghĩ rằng chuyển đổi là chính xác, nhưng im nhận được lỗi này: "Lvaule yêu cầu như toán hạng bên trái của nhiệm vụ" ... –

+1

http://stackoverflow.com/questions/5527878/lvalue-required-as- left-operand-of-assignment –

+2

Tôi không thể xóa câu trả lời được chấp nhận, nhưng đồng ý câu trả lời của AmitP là chính xác. Câu trả lời của tôi nằm dọc theo dòng "bạn không thể sử dụng chuỗi dưới dạng số" –

101

Bạn không thể gán trực tiếp vào phối hợp - đó là một tài sản readonly của CLLocation.
Sử dụng phương pháp sau đây Ví dụ:

- (instancetype)initWithLatitude:(CLLocationDegrees)latitude 
         longitude:(CLLocationDegrees)longitude 

dụ:

CLLocation *LocationAtual = [[CLLocation alloc] initWithLatitude:-56.6462520 longitude:-36.6462520]; 
+1

Đó là sự thật, bạn không thể gán cho thuộc tính CLLocation. –

+0

Câu trả lời trước là không đúng. Đây là cái đúng. – hook38

2

CLLocation phối hợp thực sự là một chỉ đọc giá trị

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate; 

Vì vậy, cách tốt nhất để gán dữ liệu giả để tọa độ là AMITp way

1

lattitude and longitu de là giá trị kép nên cần phải được chỉ định theo cách này.

CLLocation *LocationAtual=[[CLLocation alloc] initWithLatitude:[[location objectForKey:@"latitude"] doubleValue] longitude:[[location objectForKey:@"longitude"] doubleValue]] 
6

Swift trả lời cho lười biếng:

var LocationAtual: CLLocation = CLLocation(latitude: -56.6462520, longitude: -36.6462520) 
+1

Cảm ơn bạn lười biếng. : D – PruitIgoe