Я делаю приложение, которое определяет местоположение пользователя и делает [locationManager startUpdatingLocation]
вызов функции initWithNibName
, но initWithNibName
не вызывается сразу сзади, поэтому я добавил вызов для него в AppDelegate.m
:ios7 initWithNibName
WhereamiViewController *wvc = [[WhereamiViewController alloc] initWithNibName:@"WhereamiViewController" bundle:nil];
Это работает, однако возникает проблема с вызовом этой функции в функции initWithNibName
: [locationManager startUpdatingLocation]
. Он буквально ничего не возвращает. Но, если я изменю свой код, чтобы позвонить initWithNibName
в мою линию viewDidLoad
, он работает. Почему это? Я очень смущен и искал ответы, но я замер. Я понимаю, что нужно вызвать initWithNibName, но я не понимаю, почему это не сработает, если я назову его с AppDelegate.m
.
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations`
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
Вот моя initWithNibName функция:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
// Set a movement threshold for new events.
locationManager.distanceFilter = 500; // meters
[locationManager startUpdatingLocation];
}
return self;
}
Сколько разных мест вы вызываете initWithNibName (или любой вкус init) в этом классе контроллера вида? –
только один раз. либо в appdelegate.m, либо в viewdidload. – Thomas
xcode - только IDE. это НЕ api или sdk –