Возникли проблемы с подключением переменных экземпляра к AppDelegate - PullRequest
0 голосов
/ 28 июня 2011

enter image description here У меня возникли проблемы с подключением переменных экземпляра в редакторе визуальных объектов с использованием Xcode4.

удалось подключить делегат приложения Whereami к mapView и ActivityIndicator, но по какой-то причине не удалось найти locationTitleField. У меня также возникают проблемы с подключением делегатов к делегату приложения.

Что я делаю не так?

Вот код приложения Whereami App Delegate.h:

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import <MapKit/MapKit.h>

@interface WhereamiAppDelegate : NSObject     <UIApplicationDelegate,CLLocationManagerDelegate> {
    UIWindow *window;
    CLLocationManager *locationManager;
    IBOutlet MKMapView *mapView;
    IBOutlet UIActivityIndicatorView *activityIndicator;
    IBOutlet UITextView *locationTitleField;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end

Whereami App Delegate.m

#import "WhereamiAppDelegate.h"

@implementation WhereamiAppDelegate


@synthesize window=_window;

- (BOOL)application:(UIApplication *)application     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    //-- Create location manager object --
    locationManager = [[CLLocationManager alloc] init];

    //-- Make this instance of WhereamiAppDelegate the delegate
    //-- It will sends its messages to our Whereami delegate.
    [locationManager setDelegate:self];

    //-- We want all results from the location manager--
    [locationManager setDistanceFilter:kCLDistanceFilterNone];

    //-- And we want it to be as accurate as possible--
    //-- Regardless of how much time/power it takes --
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];

    //-- Tell our location manager to start looking for its location
    //-- immediately
    [locationManager startUpdatingLocation];
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)locationManager:(CLLocationManager *)manager
   didFailWithError:(NSError *)error
{
NSLog(@"Could not find location: %@", error);
 }

- (void)locationManager:(CLLocationManager *)manager 
didUpdateToLocation:(CLLocation *)newLocation 
       fromLocation:(CLLocation *)oldLocation
{
    NSLog(@"%@", newLocation);
}

1 Ответ

0 голосов
/ 28 июня 2011

Попробуйте сделать их свойства вместо iVars ...

@interface WhereamiAppDelegate : NSObject <UIApplicationDelegate,CLLocationManagerDelegate>

@property (nonatomic, retain) IBOutlet CLLocationManager *locationManager;
@property (nonatomic, retain) IBOutlet MKMapView *mapView;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *activityIndicator;
@property (nonatomic, retain) IBOutlet UITextView *locationTitleField;
@property (nonatomic, retain) IBOutlet UIWindow *window;

@end

и не забудьте синтезировать их

@synthesize locationManager = _locationManager;
@synthesize mapView = _mapView;
@synthesize activityIndicator = _activityIndicator;
@synthesize locationTitleField = _locationTitleField;

Я никогда не использую iVars для объектов, которые появляются в файлах nib; Я всегда использую свойства и никогда не сталкивался с проблемами при подключении торговых точек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...