2011-08-01 17 views
5

CLLocationCoordinate2D'nin enlem ve boylam değerlerini sayılara veya dize değerlerine nasıl dönüştürdüğümü merak ediyorum. Iver birkaç farklı şekilde çalıştı ama işe arene't:Bir CLLocationCoordinate2D türünü sayı veya dizeye dönüştürme

CLLocationCoordinate2D centerCoord; 
centerCoord.latitude = self.locModel.userLocation.coordinate.latitude ; 
centerCoord.longitude = self.locModel.userLocation.coordinate.longitude; 
NSString *tmpLat = [[NSString alloc] initWithFormat:@"%g", centerCoord.latitude]; 
NSString *tmpLong = [[NSString alloc] initWithFormat:@"%g", centerCoord.longitude]; 

NSLog("User's latitude is: %@", tmpLat); 
NSLog("User's longitude is: %@", tmpLong); 

Bu derleyici tarafından bir uyarı verir.

uyarı Bunu nasıl

warning: passing argument 1 of 'NSLog' from incompatible pointer type 

mı?

Herhangi bir yardım için teşekkür ederiz.

sayesinde

cevap

7
, uyarı ne olduğunu bahsetmedim ama NSLog dizeleri önünde @ unuttuğu için bunun en olası

:

NSLog(@"User's latitude is: %f", self.locModel.userLocation.coordinate.latitude); 
NSLog(@"User's longitude is: %f", self.locModel.userLocation.coordinate.longitude); 

Güncellenen kodu olmalıdır:

NSLog(@"User's latitude is: %@", tmpLat); 
NSLog(@"User's longitude is: %@", tmpLong); 

NSLog, önde @ işareti gerektiren bir NSString parametresi bekler. @ Işareti olmadan, dize bir NSString nesnesi olmayan düz bir C dizesidir.

+0

Üzgünüm Anna Karenina, karışıklık hakkında. Bilgilemi güncelledim ve uyarıyı ekledim. Lütfen numaralı telefon numarasına bakın. – banditKing

+1

Sorun gerçekten de NSLog dizilerinin önündeki @ işaretine sahip olmamanızdır. – Anna