Telefonun diğer tüm sınıftaki koordinatlarını kolayca almak için bir yardımcı sınıf oluşturmaya çalışıyorum. UIViewController
'un <CLLocationManagerDelegate>
'u uyguladığı bir eğiticiyi takip ettim ve işe yaradı. Aynı şeyi basit bir NSObject
'da yapmaya çalıştım, ancak o zaman delege artık çağrılmadı.CLLocationManager bir NSObject öğesinde temsilci çağırmıyor
PSCoordinates * coordinates = [[PSCoordinates alloc] init];
zaman arayarak
PSCoordinates.h
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@interface PSCoordinates : NSObject <CLLocationManagerDelegate>
@property (nonatomic, retain) CLLocationManager* locationManager;
@end
PSCoordinates.m bunu diyorum
#import "PSCoordinates.h"
@implementation PSCoordinates
- (id) init {
self = [super init];
if (self) {
self.locationManager = [[CLLocationManager alloc] init];
if ([CLLocationManager locationServicesEnabled])
{
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.distanceFilter = 100.0f;
NSLog(@"PSCoordinates init");
[self.locationManager startUpdatingLocation];
}
}
return self;
}
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"Géolocalisation : %@",[newLocation description]);
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
{
NSLog(@"Géolocalisation (erreur) : %@",[error description]);
}
@end
:
Bu
Ben kodudur bir düğmeye basmak. Init, NSLogPSCoordinates init
'u görebildiğim gibi çalışıyor.
Aynı problemi olan insanların başka konularını buldum ama cevabın hiçbiri çözemedi.
Yardımınız gerçekten takdir edilecektir.
Sen bir patronsun! Çok teşekkürler :) –
Gerçekten bana yardım edin, Ama biliyor musunuz Neden böyle? –
@ h.kishan ARC projeniz için etkinleştirildiğinden ve 'koordinatları' değişkenini yerel olarak bildiriyorsunuz. Derleyici, nesnenin kapsamını bulduğu bir sonraki an için bu örneğe bir yayın mesajı ekleyecektir. Yani, örneğiniz zaten serbest bırakıldı ve artık yok. Yani temsilciniz işe yaramayacak. Değişkeni global olarak bildirdiğinizde, üst sınıfı var olana kadar var olacaktır. Yani temsilciniz aranacak. –