У меня возникли проблемы с запуском моего метода делегата. У меня есть следующий код:
@class Location;
@protocol LocationDelegate
- (void)location:(Location*)location foundLocation:(CLLocation*)location;
- (void)location:(Location*)location failedToLocateUserWithError:(NSError*)error;
@end
@interface Location : NSObject {
__unsafe_unretained id <LocationDelegate> delegate;
}
@property (nonatomic, assign) id <LocationDelegate> delegate;
@end
...
@implementation Location
@synthesize delegate;
- (void)startUpdatingLocation {
NSLog(@"%@", delegate); // prints '(null)'
...
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@"%@", delegate); // prints '(null)'
[delegate location:self foundLocation:newLocation];
}
@end
Раньше нормально работал для других проектов, поэтому интересно, связано ли это с ARC? Объект, который выделяет Location
, действительно соответствует LocationDelegate
. Я также устанавливаю делегата на себя. Но метод делегата просто не срабатывает, и если я его вывожу, он равен нулю.
Спасибо